Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- ;; tests
- (eval '(lazy-let (x 2) 2))
- (eval '(lazy-let (x 2) x))
- (eval '(lazy-let (x (/ 5 0)) 7))
- (eval '(lazy-let (y 2)
- (lazy-let (x y)
- x)))
- (eval '(lazy-let (x (lazy-let (y 2) y))
- (+ x 1)))
- (eval '(lazy-let (x (lambda (a) (+ a 1)))
- (x 2)))
- (eval '(lazy-let (x (lambda (x) (+ x 1)))
- (x 2)))
- (eval '(lazy-let (x ((lambda-rec (append xs ys)
- (if (null? xs)
- ys
- (cons (car xs)
- (append (cdr xs) ys))))
- (cons 2 (cons 3 null))
- (cons 4 (cons 5 null))))
- x))
- (eval '(lazy-let (x (lambda-rec (append xs ys)
- (if (null? xs)
- ys
- (cons (car xs)
- (append (cdr xs) ys)))))
- (x (cons 2 (cons 3 null))
- (cons 4 (cons 5 null)))))
- (eval '((lambda-rec (fact n)
- (lazy-let (t 1)
- (lazy-let (f (* n (fact (- n 1))))
- (if (= n 0)
- t
- f))))
- 12))
- (eval '(let [x 4]
- (lazy-let [y (+ x 1)]
- (let [x 10]
- y))))
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement