评论由:carocad 提出
当然,"contains?"的行为无法在这个库内部修复。但是,这个工单是关于将临时集合用作函数的。(请参阅说明示例)
Clojure 的 transient 集允许在将集合用作函数时查找键。然而,data.int-map 在作为函数调用时内部使用 "contains?"。因此打破了预期的集合行为。
Clojure 通过将集合用作函数时调用 "get" 函数来处理此用例:[点击查看](https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/APersistentSet.java#L50)。因此,永远不会分派对 "contains?" 的调用。
当前 int-map 集合的行为迫使用户区分正在使用哪种集合类型,以便调用正确的函数。