common-lisp - 如何删除结构的 defmethod

标签 common-lisp

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

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

最佳答案

如果你没有 IDE 或类似的东西,你可以使用 remove-method :

(remove-method #'monster-show
               (find-method #'monster-show
                            ()
                            (list (find-class 'orc))))

关于common-lisp - 如何删除结构的 defmethod,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48321284/

相关文章:

debugging - 如何在 [Clozure] Common Lisp 中调试?

emacs - 如何在 LispBox 中调试 LISP 编译器错误?

common-lisp - 如何使用方法组合减少代码重复但保持可能的早期返回

string - LISP- 从字符串中删除元音

matrix - 递归 lisp 替换元素迷宫求解器

lisp - 普通口齿不清 : Use undefined variable in function

Windows 7 上的 LispWorks 无法加载 Quicklisp

common-lisp - 返回 lisp 错误

lisp - 阅读 Lisp 中的外部嵌套形式?

lisp - Clozure Common Lisp 中的 Sharpsign 点宏