# Difference between revisions of "Beta reduction"

From HaskellWiki

(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.