2011-10-06 63 views
5

如何在clojure中實現複合鍵?例如,如果我有一張地圖 姓和名,例如,指向屬性列表....我可以製作一張包含兩個字段作爲關鍵字的地圖嗎?如何在clojure中實現複合鍵?

而與此同時...在Java中,你可以重寫「等於」爲地圖製作非常先進的鍵......在clojure中如何實現複雜的鍵?

回答

11

您可以使用任何種類的正確實現equals的對象作爲關鍵。對於clojure來說,它包括所有的集合類型,所以你可以使用標準的clojure集合作爲關鍵。使用雙元素向量作爲鍵的示例:

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