Personal tools

Eta conversion

From HaskellWiki

(Difference between revisions)
Jump to: navigation, search
(Add infobox)
(link to recent thread in Haskell-Cafe)

Latest revision as of 23:55, 6 January 2011

Haskell theoretical foundations

Mathematics - Category theory
Research - Curry/Howard/Lambek

Lambda calculus:
Alpha conversion - Beta reduction
Eta conversion - Lambda abstraction

Recursion - Combinatory logic
Chaitin's construction - Turing machine
Relational algebra

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:
\x -> abs x

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