由 jafingerhut 发表的评论
Edward,你的补丁将表达式 (or m1 {}) 替换为 m1。它在2008年10月16日的一个提交中从 m1 更改为 (or m1 {}),其中有描述文“改进 merge、merge-with 中的 nil 处理”,因此我很确定最好将其保留为 (or m1 {})。我相信意图是允许 merge-with 的所有地图参数除了一个之外都是 nil,并且一切仍然可以工作。
避免一个合并调用其余补丁在我看来似乎是合理的。
如果您的更改不是用第一个 map 而是用链表中的第一个非 nil 项调用来保留第一个非 nil 地图上的任何元数据,那就更好了,然后是该链表后面的其余部分。