我试图了解Clojure层次结构如何工作,使用派生和是-a?结构。我不确定如何将这些用于我的程序中的地图和记录。有没有人用过这些?
答案 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
此博客文章还有一个更“现实世界”的例子: