Re: [Scheme-reports] [wg2] in support of single-arity procedural syntax transformers Aaron W. Hsu (12 May 2011 22:04 UTC)

Re: [Scheme-reports] [wg2] in support of single-arity procedural syntax transformers Aaron W. Hsu 12 May 2011 22:03 UTC

On Thu, 12 May 2011 10:32:05 -0400, Andy Wingo <wingo@pobox.com> wrote:

>> Overall your essay is illuminating, but reversing a syntax-object
>> representing a list is easy in an R6RS-conforming implementation.
>>
>> (define (reverse-wrapped-list obj)
>>   (syntax-case obj ()
>>     ((e ...) (reverse #'(e ...)))))
>
> This works on psyntax systems, where lists are never wrapped, but AFAIK
> it does not work on Racket, where lists are wrapped.

In R6RS, this is required to work. I believe Racket in R6RS mode complies
with this requirement, though I could be wrong. Where Racket differs is in
handling this:

(list? #'(a b c))

Here, there are no pattern expansions, and thus, it could be treated as a
single, completely wrapped object, or it could be a list with each of the
identifiers wrapped.

	Aaron W. Hsu

--
Programming is just another word for the lost art of thinking.

_______________________________________________
Scheme-reports mailing list
Scheme-reports@scheme-reports.org
http://lists.scheme-reports.org/cgi-bin/mailman/listinfo/scheme-reports