【发布时间】:2014-11-25 15:44:02
【问题描述】:
我正在尝试在 Clojure 中深度合并多个地图。我在网上找到了很多解决方案,其中大部分看起来像:
(defn deep-merge
[& xs]
(if (every? map? xs)
(apply merge-with deep-merge xs)
(last xs)))
这个解决方案的问题是,如果其中一个映射为 nil,它将删除所有之前的映射(因此如果最后一个映射为 nil,则整个函数将返回 nil)。在常规合并函数中情况并非如此,它忽略了 nil 值。 是否有其他容易实现忽略 nil 值的深度合并?
【问题讨论】: