William D Clinger wrote:
Here's an example to illustrate the connection between semantics and implementation technique:(begin (display "Hello world!") (newline) (letrec-syntax ((foo (syntax-rules () ((foo x y ...) (foo x x y ...))))) (foo 0))) I thought the R5RS allowed the program above to print something. If we prepend (import (r6rs)) to the above R5RS program, I think we get an R6RS program that is not allowed to print anything.
I stand corrected. That's a good way to draw a connection. In some sense, then, the issue is whether RnRS has business assigning meaning in cases like this where the "reasonable behavior" really depends on the implementation techniques and, therefore, on the purpose of the implementation. -t
(Indeed, I think the 5.92 draft of the R6RS requires implementations to raise a &syntax exception for this example, but I also think that was a mistake in the draft.) SCM is a pure interpreter. SCM is also said to conform to the R5RS. Whom should I believe? Will _______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
_______________________________________________ r6rs-discuss mailing list [email protected] http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss
