我有一个序列并试图去除重复项。
case 1:
(vec (into #{} [1 1 2 2 3 3])) ; => [1 2 3]
case 2:
(distinct [1 1 2 2 3 3]) ; => [1 2 3]
- 这两种情况都能带来结果,那么哪一种更好呢?
- 它们之间有什么区别?
distinct
将返回一个惰性序列,因此可以高效地用于非常大(甚至无限)的集合。into
在底层使用reduce
,因此必须事先遍历集合(我想)。 此外,distinct
将维护其元素的顺序,而into
可能会混淆它们。 如果这些都不是问题,那么distinct
显然具有清楚地说明它正在做什么的优点。 - jas