【发布时间】:2016-06-14 08:56:34
【问题描述】:
使用 Java 中的映射,您可以编写 map.computeIfAbsent(key, f) 来检查映射中是否已经存在键,如果不存在,则在键上调用 f 以生成值,并将其输入映射中。您还有map.putIfAbsent(key, value),它仅在映射中不存在键时才将值放入映射中。
忽略 Java 方法也返回值的事实,而是希望返回新的映射,Clojure 中的等效代码是什么?
到目前为止,我想出的最好的方法就是用类似的东西自己动手
(defn compute-if-absent [map key f]
(if (key map)
map
(assoc map key (f key))))
除了自己滚动还有其他选择吗?
【问题讨论】:
标签: java dictionary clojure