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
