{{clojure.data/diff}}在第118行定义
java.util.Map (diff-similar [a b] (diff-associative a b (set/union (keys a) (keys b))))
由于{{keys}}返回一个键序列,这似乎是一个错误。{{clojure.set/union}}在非集合上具有奇特且不一致的行为,并且在这种情况下,两个键序列被连接在一起。根据初步基准测试,似乎当映射没有公共键时,这个错误(?)会略微提高性能,而当映射有相同键时,性能会显著下降。由于{{diff-associative}}中的合并reduce,结果仍然是正确的。
补丁很简单(只需对每个键序列调用set)。