Clojure 不可变映射和集合的大多数实现在与 java.util.Map 和 java.util.Set 实例比较时(即使是可变的)如果它们当前具有相同的内容,可以返回 true。
为使 int 集合和 int 映射实现此功能提出的补丁有一个测试用例,演示这并不是最新库代码的情况。
我预计以下示例 REPL 会话中的所有 .equals 和 = 调用都将返回 true。
`
user=> (def jset1 (java.util.HashSet. [1]))
'user/jset1
user=> (def intset1 (imap/int-set [1]))
'user/intset1
user=> (def cset1 #{1})
'user/cset1
user=> (.equals cset1 jset1)
true
user=> (= cset1 jset1)
true
user=> (.equals jset1 cset1)
true
user=> (= jset1 cset1)
true
user=> (.equals intset1 jset1)
false
user=> (= intset1 jset1)
false
user=> (.equals jset1 intset1)
true
user=> (= jset1 intset1)
false
`