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

Reply via email to