我的程序中有很多记录,我最终使用其中一个字段作为键将它们放入地图中。例如
(defrecord Foo. [id afield anotherfield])
然后我会将其添加到以 id 为键的地图中。这一切都是完全可行的,但有点乏味,例如,当向地图添加新的 Foo 实例时,我需要先提取密钥。我想知道 clojure.core 中的某个地方是否已经存在执行此操作的数据结构?
基本上我想通过在集合的构造时给集合一个值给键映射函数(即:id)来构造一组Foo,然后在我想添加/查找/删除/..时使用它。 。 一个值。
所以而不是:
(assoc my-map (:id a-foo) a-foo))
我可以说:
(conj my-set a-foo)
更有趣的是,合并和合并支持。