{{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)。