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

Re: do-nothing macro generates nil nevertheless

[Dave Yost]

|   There should be a way to make a macro that can be as transparent as #+
|   is when its symbol is not in *features*.  That's what I should have
|   said.

#+ as a reader function has very special provisions available, namely that
returning zero values "contributes nothing to the object being read".
(CLtL2 p 543).  by the time you start to evaluate a macro, it is obviously
too late for a similar mechanism.

the compatibility note on page 543 also includes a note that MacLisp and
Interlisp had splicing macro characters that could splicing of arbitrarily
many values.  I think I understand this, but maybe somebody can tell me why
was this capability removed from Common Lisp?

hmmm.  what should reading (#.(values) #.(values 1) #.(values 1 2)) return?
gcl-1.1 says (NIL 1 1).  CMUCL 17f says (1 1).  WCL 2.2 says (1 1).  CLISP
(version?) says (NIL 1 1).

miracle of miracles.  look what the Net dragged in.