Home Articles FAQs XREF Games Software Instant Books BBS About FOLDOC RFCs Feedback Sitemap

lambda abstraction

You are here: irt.org | FOLDOC | 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.


Nearby terms: lalr.ss « Lambada-Calculus « LAMBDA « lambda abstraction » lambda-calculus » lambda expression » lambda lifting

FOLDOC, Topics, A, B, C, D, E, F, G, H, I, J, K, L, M, N, O, P, Q, R, S, T, U, V, W, X, Y, Z, ?, ALL

©2018 Martin Webb