[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Comment on the chapter 2, Version of Nov 2.
- To: Moon@STONY-BROOK.SCRC.Symbolics.COM
- Subject: Re: Comment on the chapter 2, Version of Nov 2.
- From: Danny Bobrow <Bobrow.pa@Xerox.COM>
- Date: 4 Nov 87 18:05 PST
- Cc: Common-Lisp-Object-System@SAIL.STANFORD.EDU
- In-reply-to: David A. Moon <Moon@STONY-BROOK.SCRC.Symbolics.COM>'s message of Tue, 3 Nov 87 18:13 EST
- Sender: Bobrow.pa@Xerox.COM
Date: 3 Nov 87 10:29 PST From: Danny Bobrow
<Bobrow.pa@Xerox.COM>
2-21 syntax replace {slot-option}* by [[^ slot-option]]
and use {:accessor generic-function-name}* {:reader
generic-function-name}* {:initarg name}*
as the last three items of slot-option. Then the
remarks on which options can appear more than once in Arguments
are redundant.
Stylistic comment: I hope we are not changing the style so that
it is impossible for a reader who skips over the BNF syntax
notation to understand the document. I think that would be most
unfortunate. I'd much rather have a little redundancy than make it
necessary to understand the fine points of this increasingly
obscure notation in order to understand the document.
I agree. I just wanted to make the syntax be complete.
2-26 The syntax of defgeneric now shows a lambda-list
as a required argument. I thought :lambda-list was supposed to
be a keyword argument. Similarly for generic-labels,
generic-flet, generic-function, and with-added-methods. When
there are method descriptions provided, the lambda-list is
often redundant, and hence can be a cause for mistakes. My
notes from the meeting show that there was no required
lambda-list, at least for the generic-labels, generic-flet,
generic-function, and with-added-methods. Hence by extension,
there should not be a required lambda-list in defgeneric.
I don't think we agreed in the meeting to remove these
lambda-lists. My copies of the draft documents from the meeting
show the lambda-list (along with a bunch of other stuff) missing in
the first version of some writeups, but present in the second
version that we produced after discussion and rationalization of
the syntax of all the things having to do with generic functions.
Perhaps you got mixed up on which version was newer? There are no
dates on these pages but at the meeting I wrote "old" or something
on the older ones.
You are probably right about the cause for the mixup. But the issue
remains whether lambda-list should be required. For most uses of these
forms, I can't see really wanting a lambda-list e.g. just
(ensure-generic-function 'foo) followed by defmethods, or where one has
the methods for a generic-flet (etc) and hence doesn't need the
lambda-list unless the :argument-precedence-order option is used. I
still can't remember an argument for making it required. Can you remind
me please.