用不同的lambda列表重新定义泛型函数



我犯了一个错误,第一次编译它时忘记在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实现"抱怨"未知参数后,选择重新启动,以更新泛型函数中可用的参数。

最新更新