Difference between revisions of "Beta reduction"
From HaskellWiki
BrettGiles (talk  contribs) (Add infobox) 

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}} 
{{Foundations infobox}} 

−  For example, suppose we 
+  For example, suppose we apply the function 
<haskell> 
<haskell> 

−  2*x*x + y 
+  (\x > 2*x*x + y) 
</haskell> 
</haskell> 

−  If we now replace every occurance of <hask>x</hask> with 7, we arrive at 

+  to the value <hask>7</hask>. To calculate the result, we substitute <hask>7</hask> for every [[Free variablefree occurrence]] of <hask>x</hask>, and so the application of the function 

+  <haskell> 

+  (\x > 2*x*x + y)(7) 

+  </haskell> 

+  is ''reduced'' to the result 

<haskell> 
<haskell> 

2*7*7 + y 
2*7*7 + y 

</haskell> 
</haskell> 

−  +  This is a ''beta reduction''. 

+  
+  (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]. 
Revision as of 18:22, 3 February 2007
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 free 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.