请参与2024 Clojure 状态调查!

欢迎!请查看关于页面,了解更多信息。

+2
文档

查看Clojure和Clojurescript中distinct的源代码,似乎它保留了不同元素的首次出现顺序。如果这是distinct的承诺,那么在文档字符串中记录将是好的。我本人就依赖于这种行为来对基于某些键在集合中出现的顺序对映射集合进行排序。

1 答案

+1

选定
 
最佳答案

我认为我们不应该超出它的表述。如果你传递一个序列或顺序集合,那么它将返回“元素序列” - 似乎自然地期望顺序元素按相同的顺序返回。

另一方面,如果你传递给distinct的coll是无序的并且不是顺序的(即一个映射或集合),则此函数不能保证结果的顺序。

它还故意不明确在结果中将获得哪个相等的元素(但同样,顺序coll中的第一个似乎显然是答案)。

by
是的,关于地图和集合,这是合理的。谢谢!
by
最强烈的提示是API文档说:“返回一个懒序列...”。
...