On Tue, 15 Sep 2009, Ray Dillinger wrote: > There is no absolute reason why the primitive for bundling > multiple forms has to also be a sequencing primitive. But it's > usually convenient for it to be so, and as long as mutation > exists, we need a sequencing primitive, and as far as I know > no one has demonstrated any reason for the sequencing and > bundling primitives to be distinct.
Interesting point. I should point out, however, that in R5RS internal BEGIN is actually not a sequencing primitive when it encloses internal definitions, due to the letrec semantics. In R5RS, this use of BEGIN expresses splicing, but emphatically not sequencing. In R6RS this confusing situation was simplified when the letrec* semantics was chosen for internal definitions. So R6RS was a step forward in the sense that BEGIN is now always a sequencing primitive ---- /EXCEPT when it is not/ ---- BEGIN in R6RS is emphatically a sequencing primitive for internal definitions but emphatically not a sequencing primitive for syntax definitions. This is IMO at best confusing. >> Would anyone who is not doing "screwy" things with macros ever notice >> the difference? > > Absolutely. It is not at all screwy to have (and need!) a single > macro invocation to expand into multiple definitions. I agree, this is a very common use of BEGIn in macros. Andre _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
