2012-07-19 24 views
4

在Clojure中將序列轉換爲集合的慣用方法是什麼?例如,我在點上填寫什麼?如何從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))))) 

但是,這似乎並沒有要走的路?有沒有這樣的功能?

回答

14

大部分集合有一個產生他們形成什麼seqable功能:更有趣的情況下

(set [1 1 2 2 3 3]) 
#{1 2 3} 

into功能是很好的瞭解:

(into #{1} [2 2 3 3]) 
#{1 2 3}