05/02/04 08:30:38
>>302 ANSI CLのdefgenericの説明では、defgenericの:methodオプションで定義した
メソッドと、defmethodで定義したメソッドは区別されるみたい。
defgenericの場合はラムダリストを変更して再定義することが許されている様子。
GNU CLISPではエラーになったけど。CMUCLでは可能。
(defgeneric foo (a b) (:method (a b) (list a b))) => #<GENERIC-FUNCTION FOO>
(foo 1 2) => (1 2)
(defgeneric foo (a b &optional c) (:method (a b &optional c) (list a b c))) => #<GENERIC-FUNCTION FOO>
(foo 1 2 3) => (1 2 3)
あとは、find-methodとremove-methodでメソッドを削除してからdefgenericとか。