*问题:* 在比较不同映射时,clojure.data/diff 不一致地返回一个惰性序列,但其他情况下返回向量。
user> (data/diff {:a 1 :b 2} {:a 1})
({:b 2} nil {:a 1})
这与文档和常规行为不一致。
user> (data/diff {:a 1 :b 2} {:a 1 :b 2})
[nil nil {:a 1, :b 2}]
user> (data/diff #{1 2 3} #{1 2 3})
[nil nil #{1 3 2}]
user> (data/diff #{1 2 3} #{1 2})
[#{3} nil #{1 2}]
文档字符串中指出:“递归比较 a 和 b,返回一个包含 [仅在 a 中的事物 仅在 b 中的事物 共同的事物] 的元组”,意味着它始终应该返回一个向量。