2011-01-03 8 views
5

Sto cercando di capire come funzionano le gerarchie Clojure, con il derivato e is-a? Costrutti. Non sono sicuro di come userei questi con le mappe e i record nel mio programma. Qualcuno ha usato questi?Come utilizzare le gerarchie dei clojure?

risposta

5

Trovo la tua domanda un po 'vaga. Hai letto la documentazione sul sito web Clojure?

http://clojure.org/multimethods

trovo gli esempi c'è abbastanza facile da seguire:

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 

C'è anche questo post del blog con una più "mondo reale" Esempio:

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

+0

Grazie , informazioni utili, quindi se ho capito bene se ho un record come (defrecord R []) e voglio metterlo in un hieracrhy di tipo allora ho bisogno associare i tipi con esso, come (def r (R.)) (assoc r: type :: type). È corretto? – Zubair

+0

Tbh, non ho mai fatto nulla di simile con i dischi (purtroppo non ho ancora avuto il tempo di immergermi veramente in Clojure 1.2), ma sembra ragionevole. –

Problemi correlati