Clojure 映射所有元素,保留向量结构

Clojure 映射所有元素,保留向量结构,clojure,Clojure,例如,我如何才能最好地实现这一转变: [[[1 2]] [3 4] [[5] 6]] -> [[[2 3]] [4 5] [[6] 7]] 有没有一种惯用的方法,可以使用任意数量的级别来实现这一点?您可以使用clojure.walk在任意嵌套的结构中增加数字: (def data [[[1 2]] [3 4] [[5] 6]]) (clojure.walk/postwalk #(if (number? %) (inc %) %) data) => [[[2 3]] [4 5]

例如,我如何才能最好地实现这一转变:

[[[1 2]] [3 4] [[5] 6]] -> [[[2 3]] [4 5] [[6] 7]]
有没有一种惯用的方法,可以使用任意数量的级别来实现这一点?

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

(def data [[[1 2]] [3 4] [[5] 6]])
(clojure.walk/postwalk
 #(if (number? %) (inc %) %)
 data)
=> [[[2 3]] [4 5] [[6] 7]]
您可以使用clojure.walk在任意嵌套结构中递增数字:

(def data [[[1 2]] [3 4] [[5] 6]])
(clojure.walk/postwalk
 #(if (number? %) (inc %) %)
 data)
=> [[[2 3]] [4 5] [[6] 7]]
另一个区别是mapv是渴望的,不返回惰性序列。另一个区别是mapv是渴望的,不返回惰性序列。