首页 > 解决方案 > 映射所有元素,保留向量结构

问题描述

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

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

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

标签: clojure

解决方案


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

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

推荐阅读