Lambda calculus

Previous: Computer science

Lambda calculus is a Formal System in mathematics for expressing computation based on function abstraction using variable binding and substitution. Functional programming derives its core concepts from lambda calculus. The LISP family of languages is directly based on it. In 1937, Alan Turing proved that lambda calculus and Turing machine are equivalent models of computation.

Features of the language:

Grammar:

Lambda      ::= Variable | Grouping | Abstraction | Application Variable    ::=
<letter> Grouping    ::= "(" Lambda ")" Abstraction ::= λ variable "." Lambda
Application ::= Lambda Lambda

Three conversion rules:

A variable without a lambda binding is called free. A variable with a lambda binding is called bound. A lambda expression with no free variables is called a closure.

Logic encoding:

true  = λx.(λy.x) false = λx.(λy.y)

Links to this note