【问题标题】:Inserting element into sequence while mapping over it in Clojure在 Clojure 中映射元素时将元素插入序列中
【发布时间】:2016-09-04 21:47:46
【问题描述】:

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

我对 map(和 reduce)非常熟悉,并且经常使用它们,但由于某种原因,我想不出使用 map 轻松做到这一点的方法。

map 可以为它从序列中接收到的每个输入生成两个或更多元素吗?如果有怎么办?

【问题讨论】:

    标签: clojure


    【解决方案1】:

    mapcat 就是您要找的。​​p>

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

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

    【讨论】:

    • 谢谢!!我知道一定有一个我错过的优雅解决方案。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多