Clojure-在向量中添加数对
我有一个向量Clojure-在向量中添加数对,clojure,Clojure,我有一个向量[1 2 3 4]。有没有办法把每一对加起来得到[(+12)(+23)(+34)] 我试过了 (loop [x 0] (when (< x (count y)) (+ (nth y x) (nth y (+ 1 x))) (recur (+ x 1)))) (循环[x 0] (当(
[1 2 3 4]
。有没有办法把每一对加起来得到[(+12)(+23)(+34)]
我试过了
(loop [x 0]
(when (< x (count y))
(+ (nth y x) (nth y (+ 1 x)))
(recur (+ x 1))))
(循环[x 0]
(当(
但是我得到一个越界错误IndexOutOfBoundsException clojure.lang.PersistentVector.arrayFor(PersistentVector.java:158)
这是一种方法:
(->> [1 2 3 4]
(partition 2 1)
(mapv (partial reduce +)))
;;=> [3 5 7]
我看到您所采用的方法的主要问题是循环
recur
表单中没有累加器。另一个问题是,您使用的是when
而不是if
这是一种方式:
(->> [1 2 3 4]
(partition 2 1)
(mapv (partial reduce +)))
;;=> [3 5 7]
我看到您所采用的方法的主要问题是
循环
recur
表单中没有累加器。另一个问题是,您使用的是when
而不是if
下面是一个分解示例:
(->> [1 2 3 4]
(partition 2 1)
(mapv (fn [[f s]] (+ f s))))
以下是一个分解示例:
(->> [1 2 3 4]
(partition 2 1)
(mapv (fn [[f s]] (+ f s))))