# Eta conversion

### From HaskellWiki

(Difference between revisions)

(Added slightly more chatter.) |
(link to recent thread in Haskell-Cafe) |
||

(2 intermediate revisions by 2 users not shown) | |||

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

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. | 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 | + | Extensive use of η-reduction can lead to [[Pointfree]] programming. It is also typically used in certain compile-time optimisations. |

+ | |||

+ | == See also == | ||

+ | |||

+ | * Haskell-Cafe on [http://www.haskell.org/pipermail/haskell-cafe/2010-December/087782.html What's the motivation for η rules?] | ||

[[Category:Glossary]] | [[Category:Glossary]] |

## Latest revision as of 23:55, 6 January 2011

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

## [edit] See also

- Haskell-Cafe on What's the motivation for η rules?