[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
- To: Moon @ SCRC-TENEX
- From: Kent M. Pitman <KMP @ MIT-MC>
- Date: Mon, 16 May 1983 08:04:00 -0000
- Cc: Common-Lisp @ SU-AI, JWalker @ SCRC-TENEX
I did in fact propose that :keywords be used in lambda lists years ago
and at that time there was a good argument against it: such variables
could be bound and so it wasn't fair to special case them. Only with
the decision last August of making :keywords self-evaluate has this
been a possible course of action.
George Carrette mentioned to me today that the NIL interpreter has to go
checking the pnames of symbols to see if they start with "&" every time
you bind a symbol. That seems pretty gross. Checking the package cell
for EQness would be slightly faster or at least more elegant.
In fact, the argument about :OTHERWISE-ERROR and COND was slightly false
in that it's not inconsistent to allow keywords in COND now that you can
know what they will EVAL to. eg,
(COND (FOO X) (:OTHERWISE Y))
(COND (FOO X) (:OTHERWISE-ERROR Y))
would be specially recognized syntaxes. You'd case on the surface syntax,
not on what FOO evaluates to, so if FOO evaluted to :OTHERWISE or
:OTHERWISE-ERROR, that'd just mean true. It's a plausible model of the
world. It would be more regular and would unify a lot of concepts that
Common Lisp has been drifting toward.
But I've had my say and didn't really want to slow down anyone's work.
As I said, I was just thinking aloud. I'll consider the issue closed
for now unless someone else re-opens it...