Как вы можете реализовать составные ключи в clojure? - PullRequest
5 голосов
/ 06 октября 2011

Как вы можете реализовать составные ключи в clojure?Если у меня есть карта, где имя и фамилия, например, указывают на список атрибутов .... Могу ли я сделать карту, которая содержит оба поля в качестве ключа?

А между тем ... В Javaвы можете переопределить «равно», чтобы создать очень сложные ключи для карт ... Как сложные ключи реализованы в clojure?

1 Ответ

11 голосов
/ 06 октября 2011

Вы можете использовать любой тип объекта, который правильно реализует равно как ключ.Для clojure это включает все типы коллекций, поэтому вы можете просто использовать стандартную коллекцию clojure в качестве ключа.Пример использования двухэлементных векторов в качестве ключей:

(def foo {[1 2] :bar [3 4] :baz})
=> #'user/foo
(foo [1 2])
=> :bar
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...