Beta reduction: Difference between revisions
No edit summary |
(x is bound in the function, cannot replace free occurrence) |
||
Line 6: | Line 6: | ||
(\x -> 2*x*x + y) | (\x -> 2*x*x + y) | ||
</haskell> | </haskell> | ||
to the value <hask>7</hask>. To calculate the result, we substitute <hask>7</hask> for every | 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) | (\x -> 2*x*x + y)(7) |
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.