# Eta conversion

### From HaskellWiki

(Difference between revisions)

m |
BrettGiles (Talk | contribs) (Add infobox) |
||

Line 1: | Line 1: | ||

+ | |||

+ | {{Foundations infobox}} | ||

An ''eta conversion'' (also written ''η-conversion'') is adding or dropping of abstraction over a function. For example, the following two values are equivalent under η-conversion: <haskell>\x -> abs x | An ''eta conversion'' (also written ''η-conversion'') is adding or dropping of abstraction over a function. For example, the following two values are equivalent under η-conversion: <haskell>\x -> abs x | ||

</haskell>and <haskell>abs</haskell> | </haskell>and <haskell>abs</haskell> |

## Revision as of 19:50, 1 February 2007

*eta conversion*(also written

*η-conversion*) is adding or dropping of abstraction over a function. For example, the following two values are equivalent under η-conversion:

\x -> abs x

`abs`

Converting from the first to the second would constitute an eta *reduction*, and moving from the second to the first would be an eta *abstraction*. The term 'eta conversion' can refer to the process in either direction.

Extensive use of η-reduction can lead to Pointfree programming. It is also typically used in certain compile-time optimisations.