我有3个列表("Hello" "Hi" "Hey")
("How's it" "What's" "Hey")
("going?" "up?" "Hey!")
如何加入列表以获取Hello How's it going?
Hi What's up?
Hey Hey Hey!
我知道我可以使用clojure.string/join " "
将字符串连接到一个列表中,但我想加入每个列表中的第一个元素,每个列表中的第二个元素,每个列表中的第三个元素...... < / p>
非常感谢任何帮助。感谢
答案 0 :(得分:5)
您可以使用map
。如果传入多个集合,它将从每个集合中获取一个元素并将其传递给fn:
(def a ["Hello" "Hi" "Hey"])
(def b ["How's it" "What's" "Hey"])
(def c ["going?" "up?" "Hey!"])
(map (fn [& args] (clojure.string/join " " args)) a b c)
这将导致:
("Hello How's it going?" "Hi What's up?" "Hey Hey Hey!")
但我相信更多的想法可以想到一个更优雅的解决方案: - )。
答案 1 :(得分:4)
您可以使用map
:
(map (fn [& args] (join " " args)) '("Hello" "Hi" "Hey") '("How's it" "What's" "Hey") '("going?" "up?" "Hey!"))
答案 2 :(得分:0)
只需将您的列表连接到整个列表中即可加入它:
(def data '[("Hello" "Hi" "Hey")
("How's it" "What's" "Hey")
("going?" "up?" "Hey!")])
(clojure.string/join " " (apply concat data))
Hello Hi Hey How's it What's Hey going? up? Hey!