2011-10-06 7 views
5

Jak wdrożyć klucze kompozytowe w clojure? Jeśli mam mapę zawierającą imię i nazwisko, na przykład, wskaż listę atrybutów .... Czy mogę utworzyć mapę zawierającą oba pola jako klucz?Jak wdrożyć klucze kompozytowe w clojure?

A w międzyczasie ... W java można zastąpić "równa się", aby tworzyć zaawansowane klucze do map ... W jaki sposób zaawansowane klucze są wdrażane w clojure?

Odpowiedz

11

Możesz użyć dowolnego obiektu, który poprawnie implementuje równa się jako klucz. Dla clojure, który obejmuje wszystkie typy kolekcji, możesz więc użyć standardowej kolekcji clojure jako klucza. Przykład użycia wektorów dwuelementowych jako kluczy:

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