This is an implementation of lambda, a tiny lambda calculus interpreter, using WebAssembly.

Lambda Calculus syntax:

The three basic rules are easy:

  • (\x.x) for abstractions
  • (x y) for application
  • x for variables

Additionally, parentheses can be omitted at outermost positions (e.g. \x.(x x) y) and in abstraction bodies if the body is an abstraction (e.g \x.\y.(x y)).

Try it out:

You can use Arrow Up / Down to scroll through your history of terms, ^L to clear the screen and create a permalink of the last term executed.