[plt-scheme] quasiquote?

From: Joe Marshall (jrm at ccs.neu.edu)
Date: Tue Jan 13 09:50:49 EST 2004

Ken Anderson <kanderson at bbn.com> writes:

> I think if you consider `(foo , at x , at y) x must clearly be a proper
> list, so if you think that x and y should be of the same type, then
> they should be proper lists.

Except that APPEND accepts anything as its last argument.  I expect
the above to be equivalent to
  (cons 'foo (append x y))


>
> At 09:15 AM 1/13/2004 -0500, Joe Marshall wrote:
>>  For list-related administrative tasks:
>>  http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>
>>Doug Orleans <dougo at place.org> writes:
>>
>>>   For list-related administrative tasks:
>>>   http://list.cs.brown.edu/mailman/listinfo/plt-scheme
>>>
>>> Ken Anderson writes:
>>>  > I now see that args must be a list, which i assume means a proper list.
>>>  > 
>>>  > At 11:37 AM 1/7/2004 -0500, Ken Anderson wrote:
>>>  > >> (define name 'sscanf)
>>>  > >> (define args '(string format-string . args))
>>>  > >> `(,name . ,args)
>>>  > >(sscanf string format-string . args)
>>>  > >> `(,name , at args)
>>>  > >. append: expects argument of type <proper list>; given (string format-string . args)
>>>  > >>
>>>  > >
>>>  > >>From my experience with Common Lisp i expected the two quasiquote expressions to print the same.   Am i doing somethine wrong in Scheme or is this a bug?
>>>  > >I'm using  200alpha12 (iteration 0)
>>>
>>> Coincidentally, I just ran into the same limitation: unquote-splicing
>>> only works on proper lists.  (Actually the one I ran into was
>>> unsyntax-splicing.)  R5RS only says its argument "must evaluate to a
>>> list", but it doesn't say proper list-- or is this always implied by
>>> the spec?  Anyway, is there a good reason not to extend it to work on
>>> improper lists as well?
>>
>>I'd call it a bug.  



Posted on the users mailing list.