Translation

powered by

Computing (FOLDOC) dictionary

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.