欢迎!请查看 关于 页面获取更多关于该功能的信息。
在 Clojure 和 Clojurescript 中查看 distinct 的源代码,似乎保留了第一次出现不同元素的顺序。如果这是 distinct 的承诺,那么在文档字符串中将其文档化将会是好的。我个人的确依赖于这种行为来根据某些键在集合中出现的顺序对映射集合进行排序。
distinct
我认为我们不应该说得更多。如果您传递一个序列或顺序集合,它将返回“元素的序列” - 显然,我们期望顺序元素以相同的顺序返回。
另一方面,如果传递给 distinct 的 coll 是未排序且非顺序的(即映射或集合),则此函数不能对结果的顺序做出承诺。
它还故意不明确您将在结果中获得哪个相等元素(但是,显然在顺序 coll 中的第一个似乎是显而易见的答案)。