我想将一个泛型函数保存为变量:
(defvar *gf* (make-instance 'standard-generic-function)
但是当添加一个方法时,我必须自己定义call-next-method
和next-method-p
:
(add-method *gf*
(make-instane 'standard-method
:function (lambda (args next-methods)
(flet ((call-next-method () ...)
(next-method-p () ...))
(apply (lambda () ...) args)))))
如何调用方法来定义call-next-method
?有更简单的方法吗?
参见MAKE-METHOD-LAMBDA。
如果你谷歌一下,你会发现关于这个函数的各种信息。例如,MAKE-METHOD-LAMBDA被认为是有害的