X-Git-Url: https://git.lukelau.me/?p=scheme.git;a=blobdiff_plain;f=tests.scm;h=c4b81f15158e4a7f63152edab863dc9c5e10988b;hp=f078229dd6364f78ac5769341f8f53b8d3edad27;hb=6b60f721c4be97e0a79e1b16028a5d180eb0ba1e;hpb=e3f83f555562bb5681bdb1ae9a2842df49c20d28 diff --git a/tests.scm b/tests.scm index f078229..c4b81f1 100644 --- a/tests.scm +++ b/tests.scm @@ -103,3 +103,21 @@ (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)