[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
lsubr CONS and backquote
- To: (BUG LISPM) at MIT-MC, (BUG LISP) at MIT-MC, NIL at MIT-MC
- Subject: lsubr CONS and backquote
- From: JONL at MIT-MC (Jon L White)
- Date: Thu, 27 Jul 78 16:26:00 GMT
- Original-date: 27 JUL 1978 1226-EDT
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.