Instead of zip-mapping two lists to get:
(zipmap ["a","b","c"] ["c","d","e"]) = {"c" "e", "b" "d", "a" "c"}
I want to concatenate the first element of the first list with the first element of the second list and so on to get:
("ce","bd","ac")
or in the reverse order.
You can do that with map
. map
can take multiple collections, it takes the next element from each collection and passes them into the function passed as the first argument (stopping when one of the collections runs out). So you can pass in a function that takes n arguments, and n collections.
The expression
(map str ["a" "b" "c"] ["c" "d" "e"])
will call str
first with "a" and "c", then with "b" and "d", then with "c" and "e". The result will be
("ac" "bd" "ce")
Since str
can takes a variable number of arguments it can be used with any number of collections. Passing in four collections, like
(map str ["a" "b" "c"] ["d" "e" "f"] ["g" "h" "i"] ["j" "k" "l"])
will evaluate to
("adgj" "behk" "cfil")
If you love us? You can donate to us via Paypal or buy me a coffee so we can maintain and grow! Thank you!
Donate Us With