2024年Clojure状态调查中分享您的想法!

欢迎!有关如何使用本页面的更多详情,请参阅关于页面。

+2
文档

观察Clojure和Clojurescript中`distinct`函数的源码,似乎会保留首次出现的不重复元素的顺序。如果这是`distinct`的承诺,那么在文档字符串中记录下来会很好。我个人正在依赖这种行为来根据某些键在集合中出现的顺序对映射集合进行排序。

1个答案

+1

被选中
 
最佳答案

我认为我们不需要说的比文档中更多的东西。如果您传递一个序列或序列集合,则返回“元素的序列” - 显然可以期望返回的序列元素以相同的顺序返回。

另一方面,如果传递给`distinct`的`coll`是无序且非序列的(即映射或集合),则该函数不能对结果的顺序作出承诺。

它还故意模糊您会在结果中获取哪个相等的元素(但同样,在序列集合中的第一个元素似乎是明显的答案)。

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