Combinatory logic and lambda-calculus, originally devised in the 1920s, 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 version is thoroughly revised and offers an 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.
• The authors' 1986 version of this book is widely recognised as the best introduction to these topics for the reader with some previous experience of logic; this version builds and updates that framework • Accessible and clear: a non-technical treatment of the subject with the main ideas emphasized and illustrated by examples • Exercises are designed to give practice to beginners and range from elementary to advanced, with solutions to most found at the end of the book
Preface; 1. The λ-calculus; 2. Combinatory logic; 3. The power of λ and CL; 4. Computable functions; 5. Undecidability; 6. Formal theories; 7. Extensionality in λ-calculus; 8. Extensionality in CL; 9. Correspondence between λ and CL; 10. Simple typing, Church-style; 11. Simple typing, Curry-style in CL; 12. Simple typing, Curry-style in λ; 13. Generalizations of typing; 14. Models of CL; 15. Models of λ ; 16. Scott's D∞ and other models; Appendix 1. α-conversion; Appendix 2. Confluence proofs; Appendix 3. Normalization proofs; Appendix 4. Care of your pet combinator; Appendix 5. Answers to starred exercises; Bibliography; Index.
From reviews of the first edition: 'The book of R. Hindley and J. Seldin is a very good introduction to fundamental techniques and results in these fields ... the book is clear, pleasant to read, and it needs no previous knowledge in the domain, but only basic notions of mathematical logic ... Clearly, it was impossible to treat everything in detail; but even when a subject is only skimmed, the book always provides an incentive for going deeper, and furnishes the means to do it, owing to a substantial bibliography. Several chapters end with interesting and useful notes with history, comments, and indications for further reading ... In conclusion, this book is very interesting and well written, and is highly recommended to everyone who wants to approach combinatory logic and lambda-calculus (logicians or computer scientists). J. Symbolic Logic
'The best general book on lambda-calculus (typed or untyped) and the theory of combinators.' Gérard Huet, INRIA
'… for teaching and for research or self-study the book is an outstanding source with its own clear merits. I think this second edition of this classical book is a beautiful asset for the literature on λ-calculus and CL.' Theory and Practice of Logic Programming
'… well written and offers a broad coverage backed by an extensive list of references. It could serve as an excellent study material for classes on λ-calculus and CL as well as a reference for logicians and computer scientists interested in the formal background for functional programming and related areas.' EMS Newsletter
'Without doubt this is a valuable treatment of a venerable topic that rewards those who understand it. The authors successfully promulgate their tradition, and that is certainly more important than providing full proofs for every result.' The Journal of JFP