diff options
Diffstat (limited to 'tests/let-binding.lisp')
| -rw-r--r-- | tests/let-binding.lisp | 25 |
1 files changed, 21 insertions, 4 deletions
diff --git a/tests/let-binding.lisp b/tests/let-binding.lisp index 33d021e..eead06a 100644 --- a/tests/let-binding.lisp +++ b/tests/let-binding.lisp @@ -1,7 +1,24 @@ -(assert-error (let ((i 0)) (i > 4))) - -(assert (= 3 (let ((a 1) (b 2)) - (+ a b)))) + (assert (= 3 (+ a b)))) + +;; let is letrec by default +(let ((a 1) + (b (+ a 1))) + (assert (= 2 b))) + +(let ((my-evenp + (lambda (x) + (if (= x 0) + #t + (funcall my-oddp (- x 1))))) + (my-oddp + (lambda (x) + (if (= x 0) + #f + (funcall my-evenp (- x 1)))))) + (assert (funcall my-evenp 10)) + (assert (funcall my-oddp 9)) + (assert (not (funcall my-evenp 9))) + (assert (not (funcall my-oddp 10)))) |
