Clojure 库中是否有“assoc-if”函数?即如果一个值是真的,用给定的键值更新 map 。我试图找到达到这种效果的东西,但缺乏。
(defn assoc-if
[m key value]
(if value (assoc m key value) m))
最佳答案
如果目标是避免重复 m
,您可以使用 conj
:
(conj m (when value [key value]))
...或 Clojure 1.5 的新线程宏:
(-> m
(cond-> value (assoc key value)))
如果避免重复
m
真的很重要和 value
,您必须自己编写或联系外部 clojure.core
关于clojure - Clojure 中的关联,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16356888/