2011-10-06 22 views
5

Kompozit anahtarları clojure'da nasıl uygulayabilirsiniz? İlk ve son adın bulunduğu bir haritanız varsa, öznitelikler listesine bakın .... Her iki alanı da içeren bir harita oluşturabilir miyim?Kompozit anahtarları clojure'da nasıl uygulayabilirsiniz?

Ve bu arada ... Java'da haritalar için çok gelişmiş anahtarlar oluşturmak için "eşittir" seçeneğini geçersiz kılabilirsiniz ... Gelişmiş anahtarlar clojure'da nasıl uygulanır?

cevap

11

Eşitleri anahtar olarak doğru şekilde uygulayan her türlü nesneyi kullanabilirsiniz. Tüm koleksiyon türlerini içeren clojure için, anahtar olarak standart bir clojure koleksiyonu kullanabilirsiniz. İki elemanlı vektörleri anahtar olarak kullanma örneği:

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