如何使用clojure层次结构?

Zub*_*air 5 clojure

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

Mic*_*ohl 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
Run Code Online (Sandbox Code Playgroud)

这篇博文还有一个更"现实世界"的例子:

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