2011-10-27 18 views

risposta

12

È possibile farlo con map. map può accettare più raccolte, prende l'elemento successivo da ogni raccolta e le trasferisce nella funzione passata come primo argomento (fermandosi quando una delle raccolte si esaurisce). Quindi puoi passare una funzione che accetta n argomenti e n collezioni.

L'espressione

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

chiamerà str primo con "a" e "c", poi con "b" e "d", poi con "c" e "e". Il risultato sarà

("ac" "bd" "ce") 

Da str lattina prende un numero variabile di argomenti può essere utilizzato con qualsiasi numero di collezioni. Passando in quattro collezioni, come

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

valuterà a

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

o '(mappa str [ " "a" b" "c"] [ "c" "d" "e"]) ' –

+0

Buona risposta. Si basa sulla conoscenza del modo in cui la mappa si occupa di più raccolte, che non sempre sembrano essere trattate in tutorial. –

+0

@ Brian: grazie, l'ho aggiunto per rispondere al testo. –

Problemi correlati