Difference between revisions of "Beta reduction"
Jump to navigation
Jump to search
BrettGiles (talk | contribs) (2 cents on wording / links.) |
(x is bound in the function, cannot replace free occurrence) |
||
(3 intermediate revisions by 3 users not shown) | |||
Line 1: | Line 1: | ||
− | A ''beta reduction'' (also written ''β reduction'') is |
+ | A ''beta reduction'' (also written ''β reduction'') is the process of calculating a result from the application of a function to an expression. |
+ | {{Foundations infobox}} |
||
− | For example, suppose we |
+ | For example, suppose we apply the function |
<haskell> |
<haskell> |
||
− | (\x |
+ | (\x -> 2*x*x + y) |
</haskell> |
</haskell> |
||
− | + | to the value <hask>7</hask>. To calculate the result, we substitute <hask>7</hask> for every occurrence of <hask>x</hask>, and so the application of the function |
|
<haskell> |
<haskell> |
||
− | \ |
+ | (\x -> 2*x*x + y)(7) |
</haskell> |
</haskell> |
||
+ | is ''reduced'' to the result |
||
⚫ | |||
+ | <haskell> |
||
+ | 2*7*7 + y |
||
+ | </haskell> |
||
⚫ | |||
+ | (Further reductions could be applied to reduce <hask>2*7*7</hask> to <hask>98</hask>. Although the lambdas are not explicit, they exist hidden in the definition of <hask>(*)</hask>.) |
||
⚫ | |||
Also see [[Lambda calculus]] and the [http://en.wikipedia.org/wiki/Lambda_calculus wikipedia lambda calculus article]. |
Also see [[Lambda calculus]] and the [http://en.wikipedia.org/wiki/Lambda_calculus wikipedia lambda calculus article]. |
||
+ | |||
⚫ |
Latest revision as of 16:57, 6 February 2016
A beta reduction (also written β reduction) is the process of calculating a result from the application of a function to an expression.
For example, suppose we apply the function
(\x -> 2*x*x + y)
to the value 7
. To calculate the result, we substitute 7
for every occurrence of x
, and so the application of the function
(\x -> 2*x*x + y)(7)
is reduced to the result
2*7*7 + y
This is a beta reduction.
(Further reductions could be applied to reduce 2*7*7
to 98
. Although the lambdas are not explicit, they exist hidden in the definition of (*)
.)
Also see Lambda calculus and the wikipedia lambda calculus article.