aboutsummaryrefslogtreecommitdiff
path: root/src/sexp/step.rs
diff options
context:
space:
mode:
Diffstat (limited to 'src/sexp/step.rs')
-rw-r--r--src/sexp/step.rs30
1 files changed, 30 insertions, 0 deletions
diff --git a/src/sexp/step.rs b/src/sexp/step.rs
index 535b183..e031fca 100644
--- a/src/sexp/step.rs
+++ b/src/sexp/step.rs
@@ -237,6 +237,36 @@ impl SExp {
/// scons(2, Nil))).step(),
/// Ok(scons(Vector, scons(1, scons(2, Nil))))
/// );
+ /// ```
+ ///
+ /// **Let-bindings**
+ /// ```rust
+ /// use myslip::sexp::{SExp::*, SLeaf::*, util::*};
+ ///
+ /// assert_eq!(
+ /// scons(
+ /// scons(Let, scons(var("x"), scons(5, Nil))), scons(
+ /// scons(Add, scons(var("x"), scons(1, Nil))), Nil
+ /// )
+ /// ).step(),
+ /// Ok(scons(Add, scons(5, scons(1, Nil))))
+ /// );
+ /// assert_eq!(
+ /// scons(
+ /// scons(Let, scons(var("y"), scons(4, Nil))),
+ /// scons(
+ /// scons(Let, scons(var("x"), scons(5, Nil))),
+ /// scons(scons(Add, scons(var("x"), scons(var("y"), Nil))), Nil)
+ /// )
+ /// ).step(),
+ /// Ok(scons(
+ /// scons(Let, scons(var("x"), scons(5, Nil))), scons(
+ /// scons(Add, scons(var("x"), scons(1, Nil))), Nil
+ /// )
+ /// ))
+ /// );
+ /// ```
+ ///
pub fn step(self) -> Result<Self, String> {
match self {