【问题标题】:Clojure - Adding Values in multiple vectors by indexClojure - 按索引在多个向量中添加值
【发布时间】:2017-06-16 14:42:08
【问题描述】:

我有 3 个向量 [1 2 3] [4 5 6] [7 8 9。我想通过索引添加向量,即返回一个向量

[(+ 1 4 7) (+ 2 5 8) (+ 3 6 9)] => [12 15 18]

我想如果做这样的事情,但我意识到我没有得到矢量

(defn vec-adder [x y z]
  (loop [a 1]
    (when (< a (count x)
      (recur (+ (nth x a) (nth y a) (nth z a)) (+ a 1)))))

任何帮助将不胜感激。谢谢。

【问题讨论】:

    标签: clojure


    【解决方案1】:
    (mapv + [1 2 3] [4 5 6] [7 8 9])
    

    + 是一个可以接受任意数量参数的函数(它是多参数的)。

    【讨论】:

    • ... 或者,根据一般的向量序列:#(apply mapv + %)。例如,(#(apply mapv + %) [[1 2 3] [4 5 6] [7 8 9]]) =&gt; [12 15 18]
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2018-10-17
    • 2015-01-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多