[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

Re: quasiquotation semantics



At 12:33 PM 95/08/7 -0400, Marc Feeley wrote:
>Suppose I write the following quasiquote expression:  `(a ,X b ,Y)
>
>Is it equivalent to:
>  (list 'a X 'b Y)
>or
>  (cons 'a (cons X (cons 'b (cons Y '()))))

In implementations I am familiar with, the second, explicit cons, form is
always used.

Another interpretation is (roughly):

 (let ( (temp (cons 'a (cons #f (cons 'b (cons #f '())))) ) )
   (setf (cadr temp) X)
   (setf (caddr temp Y)
   temp
 )

where temp is shared amoung all invocations of the quasiquoted form, but I
don't know of any implementations which do this.

If we standardize something we should use the most common implementation
(perhaps JARs?).

Cheers,
-Ken