The source is kinda crude at this point, but I hope to eventually allow named abstractions as well as direct manipulation of the tree (click n drag). Supporting types might be interesting as well.
The notation is cumbersome, but I like the visualization. I wish eta-reduction were implemented rather than just beta-reduction.<p>Unfortunately there appear to be some errors. Try entering the following expression:<p>#(##2 1)<p>This, if I've understood the notation correctly, means λx.(λy.λz.y)x. Thus, it should reduce to λx.λz.x, or ##2. However, the program instead reduces it to ##1, or λx.λz.z.<p>So, something's really wrong here.