A mini Lambda calculus interpreter in JavaScript. Supports function invocation, lambda, and let.
"let" is like Common Lisp's "let*". The assignments are done serially, not in parallel.
-
By Thomas Cowart
-
Based on LittleLisp Mary Rose Cook
Thank you to Martin Tornwall for the implementation of let.
$ node repl.js
(\ (x) (x x))
(let ((TRUE (\\ (x y) x))
(FALSE (\\ (x y) y))
(AND (\\ (x y) (x y x))))
(AND TRUE FALSE))