编辑:这不是减少或减少功能的问题。我遮蔽了这个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])
它按预期工作