Make base pointer to point to the previous frames base pointer
[scheme.git] / tests.scm
index f078229dd6364f78ac5769341f8f53b8d3edad27..c4b81f15158e4a7f63152edab863dc9c5e10988b 100644 (file)
--- a/tests.scm
+++ b/tests.scm
                             (f f (- n 1) (+ x 1)))))]
              (inc inc 3 2))
           5)
+
+(test-prog '(let ([go (lambda (n m x)
+                       (if (= n 0)
+                            x
+                            (go (- n 1) m (* x m))))]
+                 [pow (lambda (p y) (go p y 1))])
+                    
+             (pow 3 2))
+          8)
+
+(test-prog '(let ([pow (lambda (p y)
+                        (let ([go (lambda (n x)
+                                    (if (= n 0)
+                                        x
+                                        (go (- n 1) (* x y))))])
+                          (go p 1)))])
+             (pow 4 2))
+          16)