Details
Assignee
UnassignedUnassignedReporter
Tom JackTom JackLabels
Patch
CodePriority
Minor
Details
Details
Assignee
Unassigned
UnassignedReporter
Tom Jack
Tom JackLabels
Patch
Code
Priority
Created October 15, 2012 at 9:59 AM
Updated June 5, 2015 at 8:03 AM
clojure.data/diff
, on line 118, defines:java.util.Map (diff-similar [a b] (diff-associative a b (set/union (keys a) (keys b))))
Since
keys
returns a key seq, this seems like an error.clojure.set/union
has strange and inconsistent behavior with regard to non-sets, and in this case the two key seqs are concatenated. Based on a cursory benchmark, it seems that this bug is a slight performance gain when the maps have no common keys, and a significant performance loss when the maps have the same keys. The results are still correct because of the merging reduce indiff-associative
.The patch is easy (just call set on each key seq).