我犯了一个错误,第一次编译它时忘记在defgeneric
中指定关键字参数。现在我真的不想重新启动SLIME只是为了重新定义这个defgeneric
以包含更多参数。有没有办法以某种方式"定义"它?
哦,对不起,没关系,在删除了为该泛型定义的所有方法后,SBCL重新定义了它,所以现在一切都很好:
(remove-method #'some-generic
(find-method #'some-generic '() (list of method types)))
为子孙后代。
请参阅fmakunbound。
(fmakunbound 'some-generic)
SLIME具有命令Ctrl-cCtrl-u来取消定义函数。将光标设置在功能符号上,然后键入顺序。
另一种可能性是编译一个或多个带有附加参数的方法,然后在Common Lisp
实现"抱怨"未知参数后,选择重新启动,以更新泛型函数中可用的参数。