scalaterminologylambda-calculus

What is an "Eta expansion?"


I've only found some indirect clue from eta expansion

SimpleExpr ::= SimpleExpr1
`_' The expression 𝑒 _ is well-formed if 𝑒 is of method type or if 𝑒 is a call-by-name parameter.
If 𝑒 is a method with parameters, 𝑒 _ represents 𝑒 converted to a function type by eta expansion.
If 𝑒 is a parameterless method or call-by-name parameter of type =>𝑇, 𝑒 _ represents the function of type () => 𝑇, which evaluates 𝑒 when it is applied to the empty parameterlist ().

So is ETA an acronym for Expression To Anonymous function or something else?


Solution

  • Eta is the Greek letter η and in this case stands for extensionality. It comes from the lambda calculus. See Wikipedia.

    In lambda calculus, eta-expansion is replacing A with λx.A x when x does not appear free in A. Replacing λx.A x with A, when x does not appear free in A, is known as eta-contraction.