2011-10-27 31 views

回答

12

你可以用map来做到这一点。 map可以采用多个集合,它会从每个集合中获取下一个元素,并将它们传递到作为第一个参数传递的函数中(当其中一个集合用完时停止)。所以你可以传入一个带有n个参数和n个集合的函数。

表达

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

将调用str第一以 “a” 和 “c”,然后用 “b” 和 “d”,那么以 “C” 和 “e”。其结果将是

("ac" "bd" "ce") 

由于str罐采用可变数目的它可以与任何数量的集合中使用的参数。经过四个集合,像

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

将评估为

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

或'(地图STR [ “A” “B” “C”] [ “c” 的 “d” 的 “e”]) ' –

+0

很好的答案。它依赖于知道地图如何处理多个集合,而这些集合并不总是在教程中讨论过。 –

+0

@布莱恩:谢谢你,加了这个回答文字。 –

相关问题