我犯了一个错误,忘了在我第一次编译时在defgeneric
中指定关键字参数。现在我真的不想重新启动SLIME来重新定义这个defgeneric
以包含更多参数。有没有办法以某种方式“取消定义”它?
哦,对不起,没关系,在删除为该通用定义的所有方法之后,SBCL重新定义了它,所以它现在都很好了:
(remove-method #'some-generic
(find-method #'some-generic '() (list of method types)))
为后人。
答案 0 :(得分:11)
(fmakunbound 'some-generic)
答案 1 :(得分:9)
SLIME使用命令 Ctrl-c Ctrl-u 来取消定义函数。将光标置于功能符号上,然后键入序列。
答案 2 :(得分:0)
另一种可能性是使用附加参数编译一个或多个方法,然后在Common Lisp
实现“抱怨”未知参数后,选择重新启动,更新泛型函数中可用的参数。 / p>