![Cover of [Lambda]-calculus and combinators](/covers/OL3750252W-480.webp)
Combinatory logic and lambda-calculus, originally devised in the 1920's, have since developed into linguistic tools, especially useful in programming languages. The authors' previous book served as the main reference for introductory courses on lambda-calculus for over 20 years: this long-awaited new version is thoroughly revised and offers a fully up-to-date account of the subject, with the same authoritative exposition. The grammar and basic properties of both combinatory logic and lambda-calculus are discussed, followed by an introduction to type-theory. Typed and untyped versions of the systems, and their differences, are covered. Lambda-calculus models, which lie behind much of the semantics of programming languages, are also explained in depth. The treatment is as non-technical as possible, with the main ideas emphasized and illustrated by examples. Many exercises are included, from routine to advanced, with solutions to most at the end of the book.
It is very long, contains surprisingly few of the characteristic Wolfram promotion usually found in Wolfram texts, but besides a detailed biography and pictures of historic documents, there are a few gems (people who researched "algebra of logic" before most others) for the persistent reader.
> And maybe if the operation we now call currying needs a symbol we should be using the “sha” character Ш from the beginning of Schönfinkel’s name to remind us of a person about whom we know so little, but who planted a seed that gave us so much.
That's a good suggestion!
For folks who are interested in combinators but didn't get what they want from the text: the approachable reference on combinators is Hindley and Sheldon's "Lambda-Calculus and Combinators: an introduction"
... and of course, there is "To mock a mockingbird" by Raymond Smullyan, which introduces the topic through puzzles.
Fresh out of college I was really into lambda calculus and combinators, and wrote a pretty similar blog post to this article, maybe just a bit simpler: https://log.kv.io/post/2008/03/02/ski-calculus-in-haskell-sh...
[1] https://www.amazon.com/dp/0954300653
[2] "The Lambda Calculus — Its Syntax and Semantics" and "Lambda Calculus with Types"
For a good introduction, I would recommend J. Roger Hindley's introduction to the lambda calculus and combinatory logic entitled "Lambda-Calculus and Combinators: An Introduction". It includes some interesting info on SKI combinator calculus in addition to the lambda calculus.