On Mon, 24 Aug 2009 12:54:56 -0500, Andre van Tonder <[email protected]>
wrote:
> Yes. This would eliminate any need for worrying about macro or module
> phases for the small language.
It doesn't completely eliminate the need to address issues of syntax
expansion phase. Even if a literal syntax-rules form is the only thing
that can appear on the right-hand side of a let-syntax binding, the issue
of how to handle:
(let ((syntax-rules #f)
(... #f))
(let-syntax ((foo (syntax-rules () ((a ...) #t))))
(foo 1 2 3)))
needs to be addressed. I'm positive that per the R5RS this must return #t.
I'm reasonably certain that the authors of the R6RS *intended* to make
this a syntax error, though the language pertaining to this issue in the
R6RS is not exactly specification-quality material. (I'd welcome any
clarifications from the R6RS authors on the issue of cross-phase
references to lexical bindings, and how this interacts with hygiene.)
--
Brian Mastenbrook
[email protected]
http://brian.mastenbrook.net/
_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss