Eta conversion
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
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 (also known as eta expansion). 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.
See also[edit]
- Haskell-Cafe on What's the motivation for η rules?