Lambda abstraction




A term in lambda-calculus denoting a function.

A lambda abstraction begins with a lower-case lambda (represented as "\" in this document), followed by a variable name (the "bound variable"), a full stop and a lambda expression (the body). The body is taken to extend as far to the right as possible so, for example an expression,

\ x . \ y . x+y

is read as

\ x . (\ y . x+y).

A nested abstraction such as this is often abbreviated to:

\ x y . x + y

The lambda expression (\ v . E) denotes a function which takes an argument and returns the term E with all free occurrences of v replaced by the actual argument.

Application is represented by juxtaposition so

(\ x . x) 42

represents the identity function applied to the constant 42.

A lambda abstraction in Lisp is written as the symbol lambda, a list of zero or more variable names and a list of zero or more terms, e.g.

(lambda (x y) (plus x y))

Lambda expressions in Haskell are written as a backslash, "\", one or more patterns (e.g. variable names), "->" and an expression, e.g. \ x -> x.



< Previous Terms Terms Containing lambda abstraction Next Terms >
Lakota
LALR
lalr.ss
Lambada-Calculus
LAMBDA
abstraction
alpha conversion
beta abstraction
beta reduction
bound variable
lambda-calculus
lambda expression
lambda lifting
LambdaMOO
Lambda Prolog