Closure
From HaskellWiki
(Difference between revisions)
(HaWiki migration) |
m (fixed typo) |
||
| Line 5: | Line 5: | ||
<hask>f</hask> returns a closure, because the variable <hask>x</hask>, which is bound outside of the [[lambda abstraction]] is used inside its definition. | <hask>f</hask> returns a closure, because the variable <hask>x</hask>, which is bound outside of the [[lambda abstraction]] is used inside its definition. | ||
| - | An interesting | + | An interesting side note: the context in which <hask>x</hask> was bound shouldn't even exist anymore, and wouldn't, had the lambda abstraction not closed around x. |
[[Category:Glossary]] | [[Category:Glossary]] | ||
Current revision
A closure, the opposite of a combinator, is a function that makes use of free variables in its definition. It 'closes' around some portion of its environment. for example
f x = (\y -> x + y)
f
x
x
