# Lambda abstraction

### From HaskellWiki

(Difference between revisions)

(eta -> beta plus minor changes) |
m |

(One intermediate revision by one user not shown) |

## Latest revision as of 19:54, 13 July 2007

A *lambda abstraction* is another name for an anonymous function. It gets its name from the usual notation for writing it: for example, . (Another common, equivalent notation is: .)

\

->

\ x -> x * x

There is actually a whole mathematical theory devoted to expressing computation entirely using lambda abstractions: the lambda calculus. Most functional programming languages (including Haskell) are based upon some extension of this idea.

When a lambda abstraction is applied to a value—for instance, —the result of the expression is determined by replacing every free occurrence of the parameter variable (in this case *x*) with the parameter value (in this case 7). This is a beta reduction.