如果合并使用临时对象会很好。
补丁
- clj-1458-7.patch
方法
迁移 c.c/merge 到核心库中,在 transients 和 reduce 之后。保留旧版本作为 merge1,以便在下一个新定义之前使用。让 APersistentMap/conj 和 ATransientMap/cons 意识到 IKVReduce。
附带的补丁保留了合并的两种现有行为
- 元数据传播
- 合并的右侧可以是 Map.Entry、大小为 2 的 IPersistentVector 和常规映射。
经审核