The Implementation of Functional Programming Languages
My 1987 book is now out of print, but it is available here in its entirety in PDF form, in one of two formats:
Both are fully searchable, thanks to OCR and Norman Ramsey.
Errata
- Section 5.2.4, p87. We need an extra rule
match us [] E = E
This accounts for the possibility that in the constructor rule (Section 5.2.4) there may be some non-nullary constructors for which there are no equations.
- P168, line 2, “VAR” should be “TVAR”.