我想对一个包含双精度和向量混合的向量求和。像这样,
[[1 2 1 [1 2 3]] [1 2 4 [1 1 1]]...]
我想总结一下,这样我就会得到这样的东西,
[212 12 444 [11 2 12]]
有没有一种有效的方法可以使用核心 clojure 函数(如 reduce 或 map(来做到这一点?
我认为您希望有一个添加嵌套向量结构的函数,以便(nvadd [1 2 1 [1 2 3]] [1 2 4 [1 1 1]])
计算结果为[2 4 5 [2 3 4]]
. 然后,您可以使用该函数reduce
此类向量的向量。
(defn nvadd [a b]
(mapv #(if (vector? %1)
(nvadd %1 %2)
(+ %1 %2))
a b))
这假定输入格式正确。