我有一个序列,并试图删除重复
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]
Run Code Online (Sandbox Code Playgroud)
至于差异,jas在他的评论中涵盖了大部分内容:
distinct 很懒distinct 没有参数的是换能器distinct 维持秩序至于哪一个是首选,distinct是出于上述原因,还因为它解释了你需要什么.我忘了哪本Lisp书谈过这个(可能是Let Over Lambda),但是当给出两个相似函数之间的选择时,更喜欢那个更具体的函数.distinct解释说你想要不同的元素.(into #{} xs)可能会产生不同的值,但它也会让你的意图被误解.出于某种原因,有人可能很容易认为你想要一套.distinct缩小原因.