2011-10-27 11 views

Respuesta

12

Puede hacerlo con map. map puede tomar varias colecciones, toma el siguiente elemento de cada colección y las pasa a la función pasada como primer argumento (se detiene cuando se agota una de las colecciones). Entonces puede pasar una función que toma n argumentos yn colecciones.

La expresión

(map str ["a" "b" "c"] ["c" "d" "e"]) 

llamará str primero con "a" y "c", a continuación, con "b" y "d", a continuación, con "c" y "e". El resultado será

("ac" "bd" "ce") 

Desde str lata toma un número variable de argumentos que puede ser utilizado con cualquier número de colecciones. Pasando en cuatro colecciones, como

(map str ["a" "b" "c"] ["d" "e" "f"] ["g" "h" "i"] ["j" "k" "l"]) 

evaluará a

("adgj" "behk" "cfil") 
+9

O '(mapa str [ "a" "b" "c"] [ "c" "d" "e"]) ' –

+0

Buena respuesta. Se basa en saber cómo funciona el mapa con múltiples colecciones, lo que no siempre parece estar cubierto en tutoriales. –

+0

@Brian: gracias, agregué esto para responder el texto. –

Cuestiones relacionadas