[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
A Proposal for Environments in Scheme
A dissenting opinion:
I agree that Scheme sorely needs some kind of facility for controlling
visibility of names between program components. However, I think it
would be a mistake to add first-class environments a la T or MIT Scheme.
They are too powerful and unconstrained. I would rather see a module
facility of the more conventional kind, based on declarative scoping
constructs of the same quality as LAMBDA and LETREC, rather than on
procedures that manipulate environments by side effect. In particular,
one should be able to modularize one's programs without having to resort
to a side-effecty style. (This does not imply that modules should not
be first-class.)
I would like to some way to support block compilation (like what one has
now with LETREC), and an official way to specify interfaces (which in an
untyped world are simply lists of names).
I'm working on such a facility, inspired to some extent by ML's modules,
and have had some experience with an early version of it, but it's at
too early a stage to propose here.