lambdacalculus
Lambdacalculus, commonly called lambda calculus, is a formal system developed in the 1930s by Alonzo Church to study computation based on function abstraction and application. It uses three basic constructs: variables, abstractions written as λx. M, and applications written as (M N). Functions are treated as first-class citizens, and computation proceeds entirely through the manipulation of these lambda terms.
Evaluation in lambda calculus relies on beta reduction: applying a function to an argument, (λx. M) N,
Lambda calculus is expressive enough to encode data and control structures. Church numerals represent natural numbers
Typed variants introduce type systems that restrict terms, with the simply typed lambda calculus corresponding to