Lambdas now support recursion.
Now evaluates expresions sequentially.

The eval_loop() function evaluates expressions sequentially
and modifies the environment accordingly if there is a
'define' expression.

The main program is wrapped in a (begin <prog>) so that the original
parser can be used without alteration.