【问题标题】:Clojure reduce function for vector containing mixture vectors and doubles包含混合向量和双精度的向量的 Clojure 减少函数
【发布时间】:2019-03-20 12:05:10
【问题描述】:

我想求和一个包含双精度和向量混合的向量。有点像,

[[1 2 1 [1 2 3]] [1 2 4 [1 1 1]]...]

我想总结一下,我得到类似的东西,

[212 12 444 [11 2 12]]

有没有一种有效的方法来使用核心 clojure 函数(如 reduce 或 map)来做到这一点?

【问题讨论】:

  • 你是如何从[1 2 1 [1 2 3]]212 的?
  • 顺便说一句,确保你read this
  • 请添加您已经尝试过的代码。由于该示例已经有些不清楚,因此如果您编写一些测试用例,它确实会有所帮助。结合您的尝试,我们会遇到一个失败的场景,并且可以从那里改进。

标签: vector clojure reduce


【解决方案1】:

认为您想要一个添加嵌套向量结构的函数,以便(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))

这假设输入格式正确。

【讨论】:

  • 这比我想出的解决方案要巧妙得多,谢谢!
猜你喜欢
  • 1970-01-01
  • 2017-06-21
  • 1970-01-01
  • 1970-01-01
  • 2020-01-02
  • 1970-01-01
  • 1970-01-01
  • 2017-10-04
  • 2016-06-12
相关资源
最近更新 更多