[plt-scheme] help with with-syntax

From: Jon Rafkind (workmin at ccs.neu.edu)
Date: Sun Sep 17 09:04:35 EDT 2006

Yea that works. Thanks.

Matthias Felleisen wrote:
> Do you mean this:
>
>
> (define-syntax foo
>   (syntax-rules ()
>     ((_ x ...)
>      (printf "You passed in ~a\n" (car (list 'x ...))))))
>
> (define-syntax (blah stx)
>   (syntax-case stx ()
>     ((_ first x ...)
>      (with-syntax ((f1 (datum->syntax-object #'first 'boo #'first)))
>        #`(foo f1 x ...)))))
>
> (foo 1 2 3)
> (blah q w e)
>
>
> On Sep 16, 2006, at 11:10 PM, Jon Rafkind wrote:
>
>> Im probably missing something basic but why doesn't the following
>> replace the first argument to blah with 'boo? I sort of think it is but
>> then the printf never happens.
>>
>> (define-syntax foo
>>   (syntax-rules ()
>>     ((_ x ...)
>>      (printf "You passed in ~a\n" (car (list 'x ...))))))
>>
>> (define-syntax blah
>>   (syntax-rules ()
>>     ((_ first x ...)
>>      (with-syntax ((f1 (datum->syntax-object #'first 'boo #'first)))
>>        #'(foo f1 x ...)))))
>>
>> #; (foo 1 2 3)
>> (blah q w e)
>> _________________________________________________
>>   For list-related administrative tasks:
>>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>
>
>


Posted on the users mailing list.