Lambda calculus

The lambda calculus (or λ-calculus) is a mathematical formalism developed by the logician Alonzo Church (q.v.) in the 1930s to model the mathematical notion of substitution of values for bound variables. Consider the definition f(x) = x + 1, which defines f to be the successor function. The variable x in this definition is a bound variable in the sense that replacement of all instances of x by some other variable (say, y) yields a definition f(y) = y + 1, which is semantically equivalent. In the λ-calculus, the successor function f may be defined by the λ-expression λx(x + 1). The subexpression (x + 1) is referred to as the body of the λ-expression. The subexpression λx is referred to as the bound variable part and specifies that x is to be regarded as a bound variable in the body with which λx is associated.

[1]  H. B. Curry Some Properties of Equality and Implication in Combinatory Logic , 1934 .

[2]  A. Church An Unsolvable Problem of Elementary Number Theory , 1936 .

[3]  S. Kleene $\lambda$-definability and recursiveness , 1936 .

[4]  Alan M. Turing,et al.  Computability and λ-definability , 1937, Journal of Symbolic Logic.

[5]  Alonzo Church,et al.  A formulation of the simple theory of types , 1940, Journal of Symbolic Logic.

[6]  A. Church The calculi of lambda-conversion , 1941 .

[7]  John McCarthy,et al.  Recursive functions of symbolic expressions and their computation by machine, Part I , 1960, Commun. ACM.

[8]  P. J. Landin,et al.  Correspondence between ALGOL 60 and Church's Lambda-notation , 1965, Commun. ACM.

[9]  P. J. Landin,et al.  The next 700 programming languages , 1966, CACM.

[10]  A Koestler,et al.  Ghost in the Machine , 1970 .

[11]  Jr. Hartley Rogers Theory of Recursive Functions and Effective Computability , 1969 .

[12]  de Ng Dick Bruijn,et al.  The mathematical language AUTOMATH, its usage, and some of its extensions , 1970 .

[13]  Gordon D. Plotkin,et al.  Call-by-Name, Call-by-Value and the lambda-Calculus , 1975, Theor. Comput. Sci..

[14]  Robin Milner,et al.  A Theory of Type Polymorphism in Programming , 1978, J. Comput. Syst. Sci..

[15]  D. A. Turner,et al.  A new implementation technique for applicative languages , 1979, Softw. Pract. Exp..

[16]  Henk Barendregt,et al.  The Lambda Calculus: Its Syntax and Semantics , 1985 .

[17]  D. A. Turner,et al.  Miranda: A Non-Strict Functional language with Polymorphic Types , 1985, FPCA.

[18]  J. Roger Hindley,et al.  Introduction to combinators and λ-calculus , 1986, Acta Applicandae Mathematicae.

[19]  Richard S. Bird,et al.  Introduction to functional programming , 1988, Prentice Hall International series in computer science.

[20]  Thierry Coquand,et al.  The Calculus of Constructions , 1988, Inf. Comput..

[21]  Harold T. Hodes,et al.  The | lambda-Calculus. , 1988 .

[22]  György E. Révész Lambda-calculus, combinators, and functional programming , 1988, Cambridge tracts in theoretical computer science.

[23]  J. Girard,et al.  Proofs and types , 1989 .

[24]  Hendrik Pieter Barendregt,et al.  The Impact of the Lambda Calculus in Logic and Computer Science , 1997, Bulletin of Symbolic Logic.

[25]  Ralph Loader Notes on Simply Typed Lambda Calculus , 1998 .

[26]  Chris Hankin,et al.  An Introduction to Lambda Calculi for Computer Scientists , 2004 .