在Clojure中映射元素时将元素插入序列中

时间:2016-09-04 13:18:22

标签: clojure

我有一个 [[“H”] [“B”] [“ER”] [“W”]] 形式的向量,我想要一个形式的向量[[“H”] [“B”] [“E”] [“R”] [“W”]] ,E和R自然分开。

我对map(和reduce)非常熟悉并且已经使用了很多但是由于某些原因我无法想到使用map轻松实现这一目的的方法。

地图可以为从序列接收的每个输入生成两个或更多元素吗?如果是这样的话?

1 个答案:

答案 0 :(得分:4)

mapcat正是您要找的。

使用mapcat为每个输入元素返回集合。集合连接到结果中。例如:

(vec
  (mapcat #(map (comp vector str) (first %))
          [["H"] ["B"] ["ER"] ["W"]]))