常见的lisp中的匿名方法

时间:2015-06-09 16:42:53

标签: methods common-lisp clos mop generic-function

我想将通用函数保存为变量:

(defvar *gf* (make-instance 'standard-generic-function)

但是在添加方法时,我必须自己定义call-next-methodnext-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? 有更简单的方法吗?

1 个答案:

答案 0 :(得分:2)

请参阅MAKE-METHOD-LAMBDA

如果您使用谷歌,您将找到有关该功能的各种信息。例如MAKE-METHOD-LAMBDA considered harmful