[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Remarks on mini-ballot
- To: Guy.Steele at CMU-10A
- Subject: Remarks on mini-ballot
- From: David A. Moon <Moon at SCRC-POINTER at MIT-MC>
- Date: Tue, 09 Nov 1982 07:51:00 -0000
- Cc: common-lisp at SU-AI
- In-reply-to: The message of 9 Nov 82 02:45-EST from Guy.Steele at CMU-10A
Date: 9 November 1982 0245-EST (Tuesday)
From: Guy.Steele at CMU-10A
However, the analogy above also indicates to me that function specs
like (:PROPERTY FOO BAR) really are a kind of generalized name for
a function. If so, orthogonality demands that they be permissible
in a lot of places where currently I believe they are not in Lisp Machine
LISP:
(a) In FUNCTION: #'(:PROPERTY FOO BAR) ought to be legal.
It is. I don't remember there ever being a time when it wasn't, although
I might be forgetting.
(b) As an argument to APPLY: (APPLY '(:PROPERTY FOO BAR) args).
(c) In ordinary function calls! ((:PROPERTY FOO BAR) 5 7 :START 3 :END 5)
These two aren't, on the theory that the name for a thing is not the thing.
I won't try to argue that this theory is right, but that's the way it is
right at the moment. The lack of (c) actually required introducing a new
special form, MACROCALL, which is kind of like FUNCALL except that it works
for macros. Of course if you think about it more precisely, and with proper
understanding of Lisp semantics, this means that MACROCALL is nothing whatever
like FUNCALL! It's a macro that gets the macro definition of its first subform
and uses it to macro-expand the form.