(test-prog '(+ 1 2) "3")
(test-prog '((lambda (x) ((lambda (y) (+ x y)) 42)) 100) "142")
-; todo: support recursive let
(test-prog '(let ((x (+ 1 32))
(y x))
((lambda (z) (+ 1 z)) (* y x)))
"1090")
+(test-prog '(if ((lambda (x) (= x 2)) 1) 0 (- 32 1)) "31")