如何在clojure中实现复合键?

时间:2011-10-06 05:32:53

标签: clojure

如何在clojure中实现复合键?如果我有地图在哪里 例如,名字和姓氏指向属性列表....我可以制作一个包含两个字段作为键的地图吗?

同时......在java中你可以覆盖“equals”来为地图制作非常高级的密钥......如何在clojure中实现复杂的密钥?

1 个答案:

答案 0 :(得分:11)

您可以使用正确实现equals作为键的任何类型的对象。对于包含所有集合类型的clojure,您可以使用标准的clojure集合作为密钥。使用双元素向量作为键的示例:

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