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:

    ... that there is no other way,
    That the history of creation proceeds according to
    Stringent laws, and that things
    Do get done in this way, but never the things
    We set out to accomplish and wanted so desperately
    To see come into being.
    John Ashbery (b. 1927)

    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)