欢迎!请参阅 关于 页面以了解更多关于如何使用此平台的信息。
我想了解一下为什么 merge 函数不使用 transient(临时),以及是否有更好的版本。
而不是这个 (defn merge [& maps] (when (some identity maps) (reduce #(conj (or %1 {}) %2) maps)))
(defn merge [& maps] (when (some identity maps) (reduce #(conj (or %1 {}) %2) maps)))
我们可以使用 transducers 保持代码仍然易于阅读,并且有更好的性能 (defn merge [& maps] (when (some identity maps) (into {} cat maps)))
(defn merge [& maps] (when (some identity maps) (into {} cat maps)))