On Aug 25, 2007, at 8:41 AM, Keith Wright wrote:

> On page 30, section 10, we have the example:
>
>   (let ()
>     (define-syntax foo
>       (lambda (e)
>         (let ([+ -]) (+ 1 2))))
>     (define + 2)
>     (foo))
>
> The second argument of |define-syntax| should
> evaluate to a transformer (pg 31, 11.2.2).
> A tranformer is...a procedure that must...
> return a syntax object (lib pg 51, 12.3).
>
> The procedure in the example returns a number.

A number is a datum and every datum is a syntax
object.  Refer to r6rs-lib 12.2 for the definition
of "syntax-object" and the distinction between
a wrapped and an unwrapped one.

The listed example is correct.

Aziz,,,

_______________________________________________
r6rs-discuss mailing list
[email protected]
http://lists.r6rs.org/cgi-bin/mailman/listinfo/r6rs-discuss

Reply via email to