【问题标题】:Map all elements, preserving vector structures映射所有元素,保留向量结构
【发布时间】:2019-04-27 11:34:31
【问题描述】:

例如,我怎样才能最好地实现这种转变:

[[[1 2]] [3 4] [[5] 6]] -> [[[2 3]] [4 5] [[6] 7]]

有没有一种惯用的方法,可以有任意数量的级别?

【问题讨论】:

    标签: clojure


    【解决方案1】:

    您可以使用clojure.walk 来增加任意嵌套结构中的数字:

    (def data [[[1 2]] [3 4] [[5] 6]])
    (clojure.walk/postwalk
     #(if (number? %) (inc %) %)
     data)
    => [[[2 3]] [4 5] [[6] 7]]
    

    【讨论】:

    • 另一个区别是mapv是“eager”并且不返回惰性序列。
    猜你喜欢
    • 1970-01-01
    • 2011-02-09
    • 1970-01-01
    • 1970-01-01
    • 2021-09-24
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多