由 carocad 发布的评论
当然,“contains?” 行为无法在这个库内部修复。然而,此票据是关于将 transient 集合作为函数使用的问题。(请参阅描述示例)
Clojure的transient集合允许将集合用作函数时查找键。然而,data.int-map的transient-sets在作为函数调用时内部使用"contains?"。因此破坏了集合的预期行为。
Clojure通过在将集合用作函数时调用"get"函数来处理此用例:[代码示例](https://github.com/clojure/clojure/blob/master/src/jvm/clojure/lang/APersistentSet.java#L50)。因此,永远不会分发对"contains?"的调用。
int-map集合的当前行为迫使用户区分正在使用哪种集合类型,以便调用正确的函数。