2011-01-03 3 views
5

Я пытаюсь понять, как работают иерархии Clojure, с вывод и is-a? Конструкции. Я не уверен, как использовать их с картами и записями в своей программе. Кто-нибудь использовал их?Как использовать иерархии clojure?

ответ

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/

+0

Спасибо , полезная информация, поэтому, если я правильно понимаю, если у меня есть запись вроде (defrecord R []), и я хочу поместить ее в тип hieracrhy, тогда мне нужно ассоциировать типы с ним, например (def r (R.)) (assoc r: type :: type). Это верно? – Zubair

+0

Tbh, я никогда не делал ничего подобного с записями (к сожалению, у меня не было времени действительно погрузиться в Clojure 1.2), но это кажется разумным. –

Смежные вопросы