Lambda calculus (also written as λ-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application using variable binding and substitution. It is a universal model of computation that can be used to simulate any Turing machine. It was introduced by the mathematician Alonzo Church in the 1930s as part of his research into the foundations of mathematics.
Lambda calculus consists of constructing lambda terms and performing reduction operations on them. In the simplest form of lambda calculus, terms are built using only the following rules:[a]
: A variable is a character or string representing a parameter.
: A lambda abstraction is a function definition, taking as input the bound variable (between the λ and the punctum/dot .) and returning the body .
: An application, applying a function to an argument . Both and are lambda terms.
The reduction operations include:
: α-conversion, renaming the bound variables in the expression. Used to avoid name collisions.
: β-reduction,[b] replacing the bound variables with the argument expression in the body of the abstraction.
If De Bruijn indexing is used, then α-conversion is no longer required as there will be no name collisions. If repeated application of the reduction steps eventually terminates, then by the Church–Rosser theorem it will produce a β-normal form.
Variable names are not needed if using a universal lambda function, such as Iota and Jot, which can create any function behavior by calling it on itself in various combinations.
Cite error: There are <ref group=lower-alpha> tags or {{efn}} templates on this page, but the references will not show without a {{reflist|group=lower-alpha}} template or {{notelist}} template (see the help page).
^Cite error: The named reference BarendregtBarendsen was invoked but never defined (see the help page).
Lambdacalculus (also written as λ-calculus) is a formal system in mathematical logic for expressing computation based on function abstraction and application...
A typed lambdacalculus is a typed formalism that uses the lambda-symbol ( λ {\displaystyle \lambda } ) to denote anonymous function abstraction. In this...
simply typed lambdacalculus ( λ → {\displaystyle \lambda ^{\to }} ), a form of type theory, is a typed interpretation of the lambdacalculus with only one...
Knights of the LambdaCalculus is a semi-fictional organization of expert Lisp and Scheme hackers. The name refers to the lambdacalculus, a mathematical...
computation. Combinatory logic can be viewed as a variant of the lambdacalculus, in which lambda expressions (representing functional abstraction) are replaced...
representing data and operators in the lambdacalculus. The Church numerals are a representation of the natural numbers using lambda notation. The method is named...
extensional. In 1934, Haskell Curry noticed that the types used in typed lambdacalculus, and in its combinatory logic counterpart, followed the same pattern...
the predicative calculus of inductive constructions (which removes some impredicativity). The CoC is a higher-order typed lambdacalculus, initially developed...
Lambdacalculus is a formal mathematical system based on lambda abstraction and function application. Two definitions of the language are given here:...
version of the untyped lambdacalculus. It was introduced by Moses Schönfinkel and Haskell Curry. All operations in lambdacalculus can be encoded via abstraction...
logic and computer science, lambda is used to introduce anonymous functions expressed with the concepts of lambdacalculus. Lambda indicates an eigenvalue...
predates even the development of programming languages themselves. The lambdacalculus, developed by Alonzo Church and Stephen Cole Kleene in the 1930s, is...
(also written lambda cube) is a framework introduced by Henk Barendregt to investigate the different dimensions in which the calculus of constructions...
The names "lambda abstraction", "lambda function", and "lambda expression" refer to the notation of function abstraction in lambdacalculus, where the...
interpretation Curry–Howard correspondence Linear logic Game semantics Typed lambdacalculus Typed and untyped languages Type signature Type inference Datatype...
system. In the untyped lambdacalculus, for example, the term ( λ x . ( x x ) λ x . ( x x ) ) {\displaystyle (\lambda x.(xx)\;\lambda x.(xx))} does not have...
foundations of theoretical computer science. He is best known for the lambdacalculus, the Church–Turing thesis, proving the unsolvability of the Entscheidungsproblem...