Abstract
Lambda calculus (λ-calculus) is one of the most well-known formal models of computer science. It is the basis for functional programming like Turing machines are the foundation of imperative programming. These two systems are equivalent and both can be used to formulate and investigate fundamental questions about solvability and computability.
First, we introduce the reader to the basics of λ-calculus: its syntax and transformation rules. We discuss the most important properties of the system related to normal forms of λ-expressions. We present the recursive version of λ-calculus and finally give the classical results that establish the link between λ-calculus, partial recursive functions and Turing machines.
Access this chapter
Tax calculation will be finalised at checkout
Purchases are for personal use only
Preview
Unable to display preview. Download preview PDF.
References
Barendregt, H.P.: The Lambda Calculus, Its Syntax and Semantics. North Holland, Amsterdam (1984)
Bird, R., Wadler, P.: Introduction to Functional Programming. Prentice Hall, Englewood Cliffs (1988)
Church, A.: A set of postulates for the foundation of logic. Annals of Math. 33, 34, 346–366, 839–864 (1932/1933)
Csörnyei, Z.: Lambda-kalkulus (in Hungarian). Typotex (2007)
Curry, H.B.: Functionality in combinatory logic. Proc. Nat. Acad. Science USA 20, 584–590 (1934)
Felleisen, M., Flatt, M.: Programming Languages and Lambda Calculi. Course Notes, Utah University (2003)
Goldberg, M.: An Introduction to the Lambda Calculus. Course Notes. Ben-Gurion University (2000)
Hankin, C.: Introduction to Lambda Calculi for Computer Scientists. Imperial College London (2004)
Harrison, J.: Introduction to Functional Programming. Course Notes. University of Cambridge (1997)
Hindley, J.R., Seldin, J.P.: Introduction to Combinators and ≪-Calculus. Cambridge University Press, Cambridge (1986)
Ker, A.D.: Lambda Calculus. Course Notes. Oxford University, Oxford (2003)
Kleene, S.C., Rosser, J.B.: The inconsistency of certain formal logics. Annals of Math. 36, 630–636 (1936)
Kleene, S.C.: λ-definability and recursiveness. Duke Math. J. 2, 340–353 (1936)
Kluge, W.: Abstract Computing Machines. Springer, Heidelberg (2005)
Mitchell, J.C.: Foundations for Programming Languages. MIT Press, Cambridge (1996)
Ong, C.-H.L.: Lambda Calculus. Course Notes. Oxford University, Oxford (1997)
Paulson, L.C.: Foundations of Functional Programming. Course Notes. University of Cambridge (1996)
Pierce, B.C.: Types and Programming Languages. MIT Press, Cambridge (2002)
Pierce, B.C. (ed.): Advanced Topics in Types and Programming Languages. MIT Press, Cambridge (2005)
Plasmeijer, R., van Eekelen, M.: Functional Programming and Parallel Graph Rewriting. Addison-Wesley, Reading (1993)
Roversi, L.: λ-calculus as a Programming Language. Course Notes. Università di Torino (1999)
Schönfinkel, M.: Über die bausteine der mathematischen logik. Math. Annalen 92, 305–316 (1924)
Turing, A.M.: Computability and λ-definability. J. Symbolic Logic 2, 153–163 (1937)
Author information
Authors and Affiliations
Editor information
Editors and Affiliations
Rights and permissions
Copyright information
© 2008 Springer-Verlag Berlin Heidelberg
About this chapter
Cite this chapter
Csörnyei, Z., Dévai, G. (2008). An Introduction to the Lambda Calculus. In: Horváth, Z., Plasmeijer, R., Soós, A., Zsók, V. (eds) Central European Functional Programming School. CEFP 2007. Lecture Notes in Computer Science, vol 5161. Springer, Berlin, Heidelberg. https://doi.org/10.1007/978-3-540-88059-2_3
Download citation
DOI: https://doi.org/10.1007/978-3-540-88059-2_3
Publisher Name: Springer, Berlin, Heidelberg
Print ISBN: 978-3-540-88058-5
Online ISBN: 978-3-540-88059-2
eBook Packages: Computer ScienceComputer Science (R0)