2011-01-03 20 views
5

Próbuję zrozumieć, jak działają hierarchie Clojure, z wyprowadzić i jest-a? konstrukcje. Nie jestem pewien, w jaki sposób wykorzystałbym te mapy i zapisy w moim programie. Czy ktoś ich użył?Jak używać hierarchii clojure?

Odpowiedz

5

Moje pytanie jest nieco niejasne. Czy przeczytałeś dokumentację na stronie Clojure?

http://clojure.org/multimethods

znajdę przykłady nie dość łatwe do naśladowania:

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 

Jest też ten wpis na blogu z bardziej "rzeczywistym świecie" Przykład:

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

+0

Dzięki , przydatne informacje, więc jeśli dobrze rozumiem, jeśli mam taki zapis jak (defrecord R []) i chcę umieścić go w hieracrhy typu, to potrzebuję skojarzyć typy z nim, jak (def r (R.)) (assoc r: type :: type). Czy to jest poprawne? – Zubair

+0

Tbh, nigdy nie robiłem czegoś takiego z płytami (niestety nie miałem czasu, aby naprawdę zanurzyć się w Clojure 1.2), ale wydaje się to uzasadnione. –

Powiązane problemy