[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