2011-03-14 8 views

Respuesta

17
(map set (apply map vector d)) 

"(apply map vector)" es lo que se llama "zip" en otros idiomas como Python. Llama al vector en el primer elemento de cada elemento de d, luego al segundo elemento de cada elemento, etc.

Luego llamamos al set en cada una de esas colecciones.

+0

agradable - 1 para una solución muy limpio! – mikera

4

si hash conjunto permitido duplicado llaves, que puede usar:

(apply map hash-set d) 

lugar, puede hacer lo más feo

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

me gustaría sugerir lo siguiente:

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