在Clojure中将序列转换为集合的惯用方法是什么?例如,我在点上填写什么?
(let s [1 1 2 2 3 3]
...)
因此它产生:
#{1 2 3}
我想出来了:
(let [s [1 1 2 2 3 3]]
(loop [r #{} s s]
(if (empty? s) r (recur (conj r (first s)) (rest s)))))
但这似乎不是要走的路?是否有功能呢?
答案 0 :(得分:14)
大多数集合都有一个函数可以生成任何可以选择的函数:
(set [1 1 2 2 3 3])
#{1 2 3}
对于更有趣的案例,into
函数很容易了解:
(into #{1} [2 2 3 3])
#{1 2 3}
答案 1 :(得分:1)