gpt4 book ai didi

Clojure - 将函数应用于向量的向量

转载 作者:行者123 更新时间:2023-12-03 00:06:48 25 4
gpt4 key购买 nike

我有一个向量[[[1 2] [3 4]] [[5 6] [7 8]] [9 10] 11]。我想对这个向量应用一个函数,但保留数据结构。

例如,我想为每个数字加 1,但保留数据结构以获得结果 [[[2 3] [4 5]] [[6 7] [8 9]] [10 11 ] 12]。这可能吗?

我已经尝试过

(map #(+ 1 %) (flatten [[[1 2] [3 4]] [[5 6] [7 8]] [9 10] 11]))
=> (2 3 4 5 6 7 8 9 10 11 12)

但是可以看到数据结构不一样。

是否有一个函数可以将 (2 3 4 5 6 7 8 9 10 11 12) 转换为 [[[2 3] [4 5]] [[6 7] [8 9]] [10 11] 12]

我想也许可以使用 postwalk,但我不确定这是否正确。

任何帮助将不胜感激

最佳答案

您可以使用postwalk:

(require '[clojure.walk :as walk])

(let [t [[[1 2] [3 4]] [[5 6] [7 8]] [9 10] 11]]
(walk/postwalk (fn [x] (if (number? x) (inc x) x)) t))

关于Clojure - 将函数应用于向量的向量,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45099733/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com