A Tiny Lazy Lisp

-- examples --
Arithmetic: (+ 3 4)
Function: ((lambda (**) (** 3)) (lambda (x) (* x x)))
Infinity list: (define ones (cons 1 ones)) (take 3 ones)
Lazy evaluation: (+ 1 (car (cons (+ 2 3) (+ 4 undef))))
Factorial: (define factorial (lambda (x) (if (= x 0) 1 (* x (factorial (- x 1)))))) (factorial 10)
Higher order: (foldl (lambda (x y) (+ x y)) 0 '(1 2 3))
Currying: (((lambda (x y) (+ x y)) 1) 2)

 

http://code.google.com/p/lazylang/source/browse/trunk/lazy/