[CM] Question for writing tutorials about S7 environments

bil at ccrma.Stanford.EDU bil at ccrma.Stanford.EDU
Thu Jan 14 06:14:31 PST 2021

> Which other Scheme and Lisp implementations have environments similar 
> to S7?

I don't know of any that are similar to s7, but the underlying
ideas are not new.

Both Common Lisp and Scheme have rudimentary support for environments.
I believe r5rs scheme had null-environment and scheme-report-environment
(the top-level?), but they are immutable.  CL had augment-environment
(or was this ACL?).  MIT Scheme had a way to make a new environment,
and probably a way to pass it to eval.  I think in Guile you can pass
a module to eval, treating it as an environment.  I think you mentioned
earlier that Clojure had name spaces -- I don't know if they can be used
by the evaluation process.

Anyway, it seemed to me that lets,
environments, name-spaces, dictionaries, etc are all the same thing
and it would be interesting to make it possible for the programmer to
use them (as first class environments) during evaluation. A let then
becomes what other schemes call a module or library.  In hygienic macros
the implementor no longer has to intuit what environment a given name
comes from.  A lot of things become simpler.

More information about the Cmdist mailing list