There are lazy and strict versions of the toy lambda-calculus interpreter.
They both share the same input syntax and can be used on the same
example lambda-calculus programs, although
some programs will not work (i.e. will loop)
when using the strict interpreter of course.
It is a useful exercise to compare the strict and lazy versions
of the above files, particularly the two *.eval.P files.
Neither interpreter is a production system.
They are as small and simple as possible,
written to illustrate evaluation strategies.
Notably omitted: type checker, garbage collector.
The lazy interpreter can be run through this form:
- General routines common to both interpreters:
There is more on [λ-calculus here] and
additional [λ examples here].