[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Remarks
- To: Dick Gabriel <RPG@SAIL.STANFORD.EDU>
- Subject: Remarks
- From: Gregor.pa@Xerox.COM
- Date: Thu, 21 Jan 88 15:15 PST
- Cc: common-lisp-object-system@SAIL.STANFORD.EDU
- Fcc: BD:>Gregor>mail>outgoing-mail-1.text
- In-reply-to: The message of 21 Jan 88 14:28 PST from Dick Gabriel <RPG@SAIL.Stanford.EDU>
- Line-fold: no
Date: 21 Jan 88 14:28 PST
From: Dick Gabriel <RPG@SAIL.Stanford.EDU>
On ADD-METHOD:
Since there are ways of getting methods, and moving methods is
a reasonable thing to do, I think it is still reasonable to
have add-method in chapter 2.
I know one can get methods, but I thought it was not possible to take a
method from one generic function and move it to another - that all one
could do is grab a method, grab its method function, make up a method
object from that, and then put that on a generic function. The step of
making the method object is achieved by make-instance of standard-method,
which is in chapter 3. Therefore, I believe it belongs in chapter 3.
I sort of agree except that there is a simple documented way to create a
method.
(get-method (generic-function (x)
(:method ((x position))
(with-slots (x y)
position
(incf x)
(incf y))))
()
(list (class-named 'position)))
Given that method, one could use remove-method and add-method to move it
around.
This example brings up an interesting question. Should CLtL specify a
way to compile a method function if it is not already compiled? Sure
one could do:
(setf (method-function (get-method ..))
(compile ni (method-function (get-method ..))))
but perhaps we should specify that compile with a method object as its
first (and only) argument compiles that methods function if it is
uncompiled. Compile with a method as its first argument and a lambda as
its second would compile and install the lambda?
-------