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

欢迎!请参见关于页面,了解有关此功能的一些更多信息。

+2
文档

在 Clojure 和 Clojurescript 中查看distinct的源代码,似乎断定了首次出现的不同元素的顺序被保留了。如果这是distinct的一个保证,那么在文档字符串中记录下来会很好。我正依靠这种行为来根据某些键在集合中出现的顺序对映射集合进行排序。

1 个答案

+1

选中
 
最佳答案

我认为我们不应该说得比它实际含义更多。如果你传递一个序列或有序集合,那么它将返回“元素的序列” - 似乎很自然地期望按顺序返回这些顺序元素。

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

它故意模糊,不确定你将在结果中获得哪个等价元素(但再次,在顺序coll中的第一个似乎显然是答案)。

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