Microsoft Store
 

Lambda calculus


 

In computer science, the lambda calculus is a formal system designed to investigate function definition, function application, and recursion. It was introduced by Alonzo Church and Stephen Cole Kleene in the 1930s; Church used the lambda calculus in 1936 to give a negative answer to the Entscheidungsproblem. The calculus can be used to cleanly define what is a computable function. The question of whether two lambda calculus expressions are equivalent cannot be solved by a general algorithm, and this was the first question, even before the halting problem, for which undecidability could be proved. Lambda calculus has greatly influenced functional programming languages, especially Lisp.

Related Topics:
Computer science - Formal system - Function - Recursion - Alonzo Church - Stephen Cole Kleene - 1930s - Entscheidungsproblem - Computable function - Halting problem - Functional programming languages - Lisp

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

The lambda calculus can be called the smallest universal programming language. The lambda calculus consists of a single transformation rule (variable substitution) and a single function definition scheme. The lambda calculus is universal in the sense that any computable function can be expressed and evaluated using this formalism. It is thus equivalent to Turing machines. However, the lambda calculus emphasizes the use of transformation rules, and does not care about the actual machine implementing them. It is an approach more related to software than to hardware.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~

This article deals with the "untyped lambda calculus" as originally conceived by Church. Since then, some typed lambda calculi have been developed.

~ ~ ~ ~ ~ ~ ~ ~ ~ ~