Closure (computer Science) - History and Etymology

History and Etymology

Peter J. Landin defined the term closure in 1964 as having an environment part and a control part as used by his SECD machine for evaluating expressions. Joel Moses credits Landin with introducing the term closure to refer to a lambda expression whose open bindings (free variables) have been closed by (or bound in) the lexical environment, resulting in a closed expression, or closure. This usage was subsequently adopted by Sussman and Steele when they defined Scheme in 1975, and became widespread.

The term closure is often mistakenly used to mean anonymous function. This is probably because most languages implementing anonymous functions allow them to form closures and programmers are usually introduced to both concepts at the same time. An anonymous function can be seen as a function literal, while a closure is a function value. These are, however, distinct concepts. A closure retains a reference to the environment at the time it was created (for example, to the current value of a local variable in the enclosing scope) while a generic anonymous function need not do this.

Read more about this topic:  Closure (computer Science)

Famous quotes containing the words history and/or etymology:

    ... all big changes in human history have been arrived at slowly and through many compromises.
    Eleanor Roosevelt (1884–1962)

    The universal principle of etymology in all languages: words are carried over from bodies and from the properties of bodies to express the things of the mind and spirit. The order of ideas must follow the order of things.
    Giambattista Vico (1688–1744)