> Say I have a set of definitions, and only want three of them: a, b, and c,
> visible to a section of code

Well, I confess that this is a good argument for first class environments.
The natural way to express this would be something like
        (define-uplevel a a)
where define-uplevel would be a /simple/ macro manipulating environments.

Second choice would be a non-special-form DEFINE (i.e., evaluating its first
argument), with which you could have a module return an alist of bindings that
the caller would then (again a simple macro) define in its own environment.
Or, (I'm making this up as I go along) perhaps I don't need a different
DEFINE if my macros can take the alist of bindings and construct a bunch of
ordinary DEFINEs from it.  (But maybe that requires non-hygienic macros?)

PS Of course I use LET.  You're being sarcastic, right?  I have nothing
against simple syntactic sugar.  I use apostrophe instead of (QUOTE ...) too.
There's nothing about LET that requires a huge jump in the complexity of the
semantics of the language, to one that includes phases.

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to