Book Description
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.