【发布时间】:2011-10-06 05:32:52
【问题描述】:
如何在 clojure 中实现复合键?如果我有一张地图 例如,名字和姓氏指向属性列表...。我可以制作一个包含两个字段作为键的映射吗?
同时......在java中你可以覆盖“equals”来为地图制作非常高级的键......如何在clojure中实现复杂的键?
【问题讨论】:
标签: clojure
如何在 clojure 中实现复合键?如果我有一张地图 例如,名字和姓氏指向属性列表...。我可以制作一个包含两个字段作为键的映射吗?
同时......在java中你可以覆盖“equals”来为地图制作非常高级的键......如何在clojure中实现复杂的键?
【问题讨论】:
标签: clojure
您可以使用任何类型的正确实现等于的对象作为键。对于 clojure,它包括所有集合类型,因此您可以只使用标准的 clojure 集合作为键。使用二元素向量作为键的示例:
(def foo {[1 2] :bar [3 4] :baz})
=> #'user/foo
(foo [1 2])
=> :bar
【讨论】: