Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/EmptyTag/138.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure-在向量中添加数对_Clojure - Fatal编程技术网

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))))