Вы можете сделать это с помощью 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")