You can do this with map . map can accept several collections, it takes the next element from each collection and passes them to the function passed as the first argument (stop when one of the sets ends). So you can pass a function that takes n arguments and n collections.
Expression
(map str ["a" "b" "c"] ["c" "d" "e"])
first, str will be str with "a" and "c", then with "b" and "d", then with "c" and "e". Result will be
("ac" "bd" "ce")
Since str can take a variable number of arguments, it can be used with any number of collections. Transmission in four collections, such as
(map str ["a" "b" "c"] ["d" "e" "f"] ["g" "h" "i"] ["j" "k" "l"])
will be rated as
("adgj" "behk" "cfil")
source share