How we did it:
For any feedback, any questions, any notes or just for chat - feel free to follow us on social networks
Hendrik Pieter Barendregt
The revised edition contains a new chapter which provides an elegant description of the semantics. The various classes of lambda calculus models are described in a uniform manner. Some didactical improvements have been made to this edition. An example of a simple model is given and then the general theory (of categorical models) is developed. Indications are given of those parts of the book which can be used to form a coherent course.
This well-respected text offers an accessible introduction to functional programming concepts and techniques for students of mathematics and computer science. The treatment is as nontechnical as possible, assuming no prior knowledge of mathematics or functional programming. Numerous exercises appear throughout the text, and all problems feature complete solutions. 1989 edition.
The lambda-calculus lies at the very foundations of computer science. Besides its historical role in computability theory it has had significant influence on programming language design and implementation, denotational semantics, and domain theory. The book emphasises the proof theory for the type-free lambda-calculus. The first six chapters concern this calculus and cover the basic theory, reduction, models, computability, and the relationship between the lambda-calculus and combinatory logic. Chapter 7 presents a variety of typed calculi; first the simply typed lambda-calculus, then Milner-style polymorphism and, finally, the polymorphic lambda-calculus. Chapter 8 concerns two variants of the type-free lambda-calculus that have appeared in the research literature: the lazy lambda-calculus, and the lambda sigma-calculus. The final chapter contains references and a guide to further reading. There are exercises throughout. In contrast to earlier books on these topics, which were written by logicians, this book is written from a computer science perspective and emphasises the practical relevance of many of the key theoretical ideas. The book is intended as a course text for final year undergraduates or first year graduate students in computer science. Research students should find it a useful introduction to more specialist literature.