如何从Clojure中的列表中删除重复项?

jeo*_*eon 15 list clojure

如何从列表中删除重复值?例如,

(remove-duplicates ["a" "b" "c" "a"])
  => ("a" "b" "c")
Run Code Online (Sandbox Code Playgroud)

mis*_*tor 34

user=> (distinct '(34 56 45 34 56 89 11 4 11 78 11))
(34 56 45 89 11 4 78)
Run Code Online (Sandbox Code Playgroud)


sep*_*p2k 10

如果您不关心订单,只需将列表转换为一组即可:

user=> (set '("a" "b" "c" "a" "lala" "d"))
#{"a" "b" "c" "d" "lala"}
Run Code Online (Sandbox Code Playgroud)

  • 除了订购之外,推入一套不是懒惰,但是`distinct`是. (4认同)

Joh*_*ghi 5

Dedupe 是排序列表的更快等价物,因为 Dedupe 仅将先前元素保留在内存中。