我惊讶地发现 distinct
在集合上调用时会抛出异常,例如:
(distinct #{1 2 3})
一种解决方案是首先在集合上调用 seq
:(distinct (seq #{1 2 3}))
然而,当考虑到其他序列操作符(例如 map
、keep
、reduce
、first
、some
等)都可以接受集合时,这似乎是不必要的仪式。
此外,distinct
的文档字符串声明:
> 返回一个惰性序列,其中包含 coll 中重复元素。
由于 (coll? #{1 2 3}) => true
,这对用户来说很困惑。
关于数学组合学中的出现已有一些相关讨论 在这里 和 在这里,但没有任何真正的决定。
我提议 distinct
应接受任何可序列化的集合。