8

我犯了一个错误,在defgeneric我第一次编译它时忘记指定关键字参数。现在我真的不想重新启动 SLIME 只是为了重新定义这个defgeneric以包含更多参数。有没有办法以某种方式“取消定义”它?

哦,对不起,没关系,在删除了为该泛型定义的所有方法之后,SBCL 重新定义了它,所以现在一切都很好:

(remove-method #'some-generic 
  (find-method #'some-generic '() (list of method types)))

为后人。

4

3 回答 3

11

fmakunbound

(fmakunbound 'some-generic)
于 2013-07-29T11:10:59.957 回答
9

SLIME 有取消Ctrl-c Ctrl-u定义函数的命令。将光标置于功能符号上,然后键入序列。

于 2013-07-29T15:26:39.763 回答
0

另一种可能性是使用附加参数编译一个或多个方法,然后在您的Common Lisp实现“抱怨”未知参数后,选择重新启动以更新通用函数中可用的参数。

于 2013-07-29T10:27:51.403 回答