【发布时间】:2011-01-03 09:20:02
【问题描述】:
我试图了解 Clojure 层次结构如何使用 derive 和 is-a? 构造。我不确定如何将这些与我的程序中的地图和记录一起使用。有人用过吗?
【问题讨论】:
标签: clojure
我试图了解 Clojure 层次结构如何使用 derive 和 is-a? 构造。我不确定如何将这些与我的程序中的地图和记录一起使用。有人用过吗?
【问题讨论】:
标签: clojure
我觉得你的问题有点含糊。您是否阅读过 Clojure 网站上的文档?
http://clojure.org/multimethods
我发现那里的例子很容易理解:
user=> ::rect
:user/rect
user=> (derive ::rect ::shape)
nil
user=> (parents ::rect)
#{:user/shape}
user=> (derive ::square ::rect)
nil
user=> (ancestors ::square)
#{:user/shape :user/rect}
user=> (isa? ::square ::shape)
true
还有这篇博文包含一个更“真实”的示例:
【讨论】: