Lambda Evaluator
----------------
There is now a [lambda evaluator](http://lambda.jimpryor.net/lambda-let.html) available.
It will allow you to write lambda terms and evaluate them, with full ability to inspect the results.
(This won't work in Racket, because Racket doesn't even try to represent the internal structure of a function in a human-readable way.)
*Lambda terms*: lambda terms are written with a backslash, thus: `((\x (\y x)) z)`.
If you click "Reduce", the system will produce a lambda term that is guaranteed to be reduction equivalent (`<~~>`) with the original term. So `((\x (\y x)) z)` reduces to (a lambda term equivalent to) `(\y z)`.
*Let*: in order to make building a more elaborate system easier, it is possible to define values using `let`.
In this toy system, `let`s should only be used at the beginning of a file. If we have, for intance,
let true = (\x (\y x)) in
let false = (\x (\y y)) in
((true true) false)
the result is `true`.
*Comments*:
[more soon]