【问题标题】:Anonymous methods in common lispcommon lisp 中的匿名方法
【发布时间】:2015-06-09 16:42:52
【问题描述】:

我想将泛型函数保存为变量:

(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的方法? 有没有更简单的方法来做到这一点?

【问题讨论】:

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


    【解决方案1】:

    MAKE-METHOD-LAMBDA

    如果你用谷歌搜索它,你会发现关于这个功能的各种信息。例如MAKE-METHOD-LAMBDA considered harmful

    【讨论】:

      猜你喜欢
      • 2023-03-20
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多