2011-03-14 122 views

回答

17
(map set (apply map vector d)) 

(apply map vector)」是其他語言(如Python)中所謂的「zip」。它在d的每個元素的第一項上調用vector,然後每個元素的第二項等。

然後我們在這些集合的每一個上調用set

+0

尼斯 - +1一個非常巧妙的解決辦法! – mikera 2011-03-14 21:01:04

4

如果哈希集合允許重複鍵,你可以使用:

(apply map hash-set d) 

相反,你可以做醜陋

(apply map (fn [& s] (set s)) d) 
1

我建議如下:

(reduce 
    (fn [sets vals] 
    (map conj sets vals)) 
    (map hash-set (first d)) 
    (rest d))