在鸡方案中的鸡舍对象系统中定义泛型的目的是什么



我试图弄清楚在goops库(http://wiki.call-cc.org/eggref/4/coops(中定义泛型的目的是什么,如果它可以帮助某人,它类似于CLOS(我也不知道CLOS(。

我可以这样定义一个类和一个方法:

(define-class <complex> () (x y))
(define-method (sum (a <complex>) (b <complex>))
(make <complex>
'x (+ (slot-value a 'x) (slot-value b 'x))
'y (+ (slot-value a 'y) (slot-value b 'y))))

但是这样做的目的是什么呢?

(define-generic (sum <complex> <complex>))

从文档中:

[syntax] (define-generic (NAME ARGUMENT ...))

定义泛型过程,即专用于一个或多个过程的过程 参数类型。论点。。。定义专用数量 此通用过程应用于调度到正确 方法。泛型过程可能会收到其他参数,但 这些不会用于确定方法。

有人可以给我一个简单的例子来解释define-methoddefine-generic的差异吗?

泛型过程是一种特殊的对象,由(一个或多个(专用方法组成。

define-generic定义这样一个对象,define-method向其添加方法,如果它不存在,则创建它。

相关内容

  • 没有找到相关文章

最新更新