

Rating:
The book explains how a functional programming language could be built upon the lambda calculus’s simple principles. The book starts off with some lambda-calculus basics and gradually builds a language on top of that. In the ending chapters, SML and Lisp are compared to the foundations taught in this book. I already knew some functional programming before starting this book and was mainly interested in how such programming languages construct their functionality (e.g. recursion).
- The starting chapters are very interesting. They explained exactly what I came for: How the lambda calculus as a turing-complete system can be used to build actual logic.
- Some chapters in the middle are also interesting, but at times I felt that some of it could be omitted or shortened. E.g. the stuff about the trees lost something after lists have already been described throughout.
- I found that the analysis of actual functional programming languages can only offer most of the value if you already know some of them. The SML part reminded me of F# (which is somewhat based on SML) and so I found it an interesting read. For the Lisp part, I think I’d need more experience/knowledge to actually appreciate the content.
All in one, I’m glad I picked this book because it sharpened my understanding of functional languages in a way that I hoped it would. In my opinion, some parts are a bit too lengthy / could be omitted so I can’t give the book a full five-star rating.