欢迎!请参阅关于页面获取更多关于这个如何工作的信息。
我在想为什么`merge`函数没有使用transients,以及是否存在更好版本的实现。
而不是这个 (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)))
我们可以使用transducer来保持代码的可读性,并提高性能 (defn merge [& maps] (when (some identity maps) (into {} cat maps)))
(defn merge [& maps] (when (some identity maps) (into {} cat maps)))