2011-10-06 9 views
5

Come si possono implementare le chiavi composite in clojure? Se ho una mappa dove Nome e cognome, ad esempio, puntare a un elenco di attributi .... Posso creare una mappa che contenga entrambi i campi come chiave?Come si possono implementare le chiavi composite in clojure?

E nel frattempo ... In java è possibile eseguire l'override di "uguali" per rendere le chiavi molto avanzate per le mappe ... Come vengono implementate le chiavi sofisticate in clojure?

risposta

11

È possibile utilizzare qualsiasi tipo di oggetto che implementi correttamente come chiave. Per clojure, questo include tutti i tipi di raccolta, quindi puoi semplicemente usare una collezione di clojure standard come chiave. Esempio utilizzando i vettori a due elementi come chiavi:

(def foo {[1 2] :bar [3 4] :baz}) 
=> #'user/foo 
(foo [1 2]) 
=> :bar 
Problemi correlati