如何删除结构的 defmethod

Col*_*ell 4 common-lisp

我有 2 个破坏:monster& orc。在orc包括monster。通用怪物有通用的 defmethods 命名为monster-show& monster-hit。该orc拥有一支专业monster-hit,但仍保持着通用monster-show。我的问题是我不小心为orc错误的名称 ( monster-show)命名了专门的方法,所以现在当我尝试使用 generic 时monster-show,它运行它不应该的代码(我编译的错误命名的 defmethod)而不是运行泛型方法.

有没有办法摆脱 Slime + SBCL 中的专门定义方法?

Sva*_*nte 5

如果您没有 IDE 等,您可以使用remove-method

(remove-method #'monster-show
               (find-method #'monster-show
                            ()
                            (list (find-class 'orc))))
Run Code Online (Sandbox Code Playgroud)