如何使用clojure层次结构?

时间:2011-01-03 09:20:03

标签: clojure

我试图了解Clojure层次结构如何工作,使用派生是-a?结构。我不确定如何将这些用于我的程序中的地图和记录。有没有人用过这些?

1 个答案:

答案 0 :(得分:5)

我发现你的问题有点模糊。您是否阅读过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

此博客文章还有一个更“现实世界”的例子:

http://www.prodevtips.com/2010/06/20/clojure-inheritance/