# Difference between revisions of "Eta conversion"

From HaskellWiki

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

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

and

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