[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Closures



I'm willing to waste a cycle or two per call even in compiled code to
have the functionality of closures around.  I think that I would use
closures a lot, once they were available, and wonder how we ever lived
without them.  In fact, I meant to raise the question of whether we need
another function to evaluate an arbitrary form in the environment of a
closure.

Having said that, let me also say that I have not yet thought through
the issue of whether the presence of lexical-scope/indefinite-extent
varaibles in the language makes dynamic closures unneccessary.  If the
lexical mechanism does most of the useful things that we would otherwise
have to do with closures (generators, families of active objects with
some shared but non-global state...?), then I would favor dropping the
dynamic closures from the language.  The lexical "closures" would
compile better and, in some sense, be more elegant, since dynamically
closing over only a few specific variables is a crock.  Can the Scheme
hackers out there explain to us which uses of dynamic closure are
subsumed under lexical closure and which uses really need the dynamic
closures?

-- Scott