Brian Mastenbrook scripsit:

> How is a procedure call different from a variable reference? 

Because of the general observation that top-level variables bound to
literal procedures are far more likely to be immutable (except for
redefinition) than other top-level variables.  Also because inlining
procedures is a huge win compared to inlining non-immediate data.

> >I am assuming, perhaps falsely, that no systems fail to expand macros
> >at definition time.
> 
> I can't think of how you would *not* do this and preserve hygiene.

Apparently the way SCM does: with first-class environments.

> I don't see any problems with your mental model, but I'm having  
> trouble at the point of conclusion. If the module `foo' is already  
> defined, and I either type at the REPL or load a file containing a re- 
> definition of the module, am I altering the existing bindings in that  
> module, or am I creating new syntactic bindings?

Altering.  I was careful to use the word "alters" in my description to
make that clear, but apparently it didn't.  But that does not mean the
alterations are propagated to the importing modules.

> (As an aside, I'm somewhat confused by the use of the word "module"  
> here. Is this being done deliberately to distinguish something being  
> proposed from the R6RS libraries, and if so, why?)

No, just an indication that I'm not binding myself to R6RS specifics
here.  I'd still like Thing One modules to be a subset of Thing Two
libraries, but only if some adjustments are made between R6RS and Thing Two.

-- 
John Cowan   http://ccil.org/~cowan    [email protected]
In might the Feanorians / that swore the unforgotten oath
brought war into Arvernien / with burning and with broken troth.
and Elwing from her fastness dim / then cast her in the waters wide,
but like a mew was swiftly borne, / uplifted o'er the roaring tide.
        --the Earendillinwe

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

Reply via email to