編集:これは、削減または削減される機能の問題ではありませんでした。clojure.core/range
関数をシャドーイングしました。
私には機能があります
(defn- roundfn [[xi ci bi oi :as state] r]
(let [[xn cn bn] (newstate [xi ci bi] 0)
exfn (word<-x xn)]
[xn cn bn
(into oi
[(exfn [6 3 6 1])
(exfn [4 1 4 7])
(exfn [2 7 2 5])
(exfn [0 5 0 3])])]))
ここで、x1、x2、および x4 はそれ自体がベクトルです。x3 は値です。
この関数を次のように減らすと
(reduce roundfn [[][] 0 []] (range 3))
また
(reduce roundfn [[][] 0 []] (vec (range 3)))
受け取っています IndexOutOfBoundsException clojure.lang.PersistentVector.arrayFor (PersistentVector.java:107)
この関数を次のように減らすと
(reduce roundfn [[][] 0 []] [0 1 2])
それは期待どおりに動作します