星期三, 七月 21, 2004

BlocksAndClosures - Groovy Wiki

BlocksAndClosures - Groovy Wiki: "Closures"

Groovy设计到的词汇,Closure:闭包,也可做:回路

1. In a reduction system, a closure is a data
structure that holds an expression and an environment of
variable bindings in which that expression is to be evaluated.
The variables may be local or global. Closures are used to
represent unevaluated expressions when implementing
functional programming languages with lazy evaluation. In
a real implementation, both expression and environment are
represented by pointers.

A suspension is a closure which includes a flag to say
whether or not it has been evaluated. The term "thunk" has
come to be synonymous with "closure" but originated outside
functional programming.

2. In domain theory, given a partially ordered
set, D and a subset, X of D, the upward closure of X in D is
the union over all x in X of the sets of all d in D such that
x <= d. Thus the upward closure of X in D contains the
elements of X and any greater element of D. A set is "upward
closed" if it is the same as its upward closure, i.e. any d
greater than an element is also an element. The downward
closure (or "left closure") is similar but with d <= x. A
downward closed set is one for which any d less than an
element is also an element.

("<=" is written in LaTeX as \subseteq and the upward
closure of X in D is written \uparrow_\{D} X).