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

lsubr CONS and backquote



    I have many places in the COMPLR where I would like to use an
LSUBR version of CONS, namely to do something like
  (CONS (CAR X) (CONS (CADR X) (CONS 'MUMBLE (CONS Z (CDDDR L)))))
[hence I would like to see LISP 1703 be made the system LISP asap]
Now this is not exactly a problem for backquote since I would
like to write the code directly and the code using 2-arg cons is 
bletcherous (which is what the read-macro-expansion of backquote
produces anyway!).  Note the similarity of the
pre-expanded input using backquote and that using lsubr cons
     `(,(CAR X) ,(CADR X)  MUMBLE ,Z . ,(CDDDR L))
  (CONS (CAR X)  (CADR X) 'MUMBLE  Z    (CDDDR L))
In short, backquote seems best used when most of the stuff is quoted,
whereas lsubr cons seems best used when most of the stuff is evaluated.
Yes I *am* aware of the extended generality of the ,@ feature of 
backquote, but that is no reason to demand usage of a sledgehammer when
a toothpick will do, for it takes a lot more to control the heavy-tool
when it is not the instrument especially suited for the job.  For example,
the above example requires typing 5 unquoter characters (","s) for
backquote, but only one quoter character ("'") for forwardquote.
   It is a little annoying that backquote produces such bletcherous consy
code - it could use lsubr cons also when all things are installed -
and somewhat annoying that there is no "forwardquote", i.e. something
that evals everything except where there is a quote.  
  I know the LISPM has *LIST - any hopes of generalizing CONS to many
args both in LISPM and NIL and standardizing on that definition?
For now (may change mind) I tend to agree with DLW that backquote is
essentially only used in MACRO defunitions, and we could ignore any
systemic use;  thus it needn't go in the system of MACLISP or NIL to
be usable, but merely in the prefaces (or helper-files) for MACRO
subpackages etc.