【发布时间】:2015-06-13 21:49:52
【问题描述】:
我是 clojure 和函数式编程的新手,所以我希望能得到一些帮助。 :)
我想要做的是:我想要得到这个 [1 1 2] 来自这个“结构” [[1 0 1] [0 1 0] [0 0 1]] 因此我试图总结三个向量的第一个元素,三个向量的第二个元素,最后是第三个三个向量的元素,得到一个包含这个和的新向量。
我的代码如下:
(def matrix [[1 0 1] [0 1 0] [0 0 1]])
(def sum (atom 0))
(def sum-vector (atom []))
(for [i (range 3)]
((for [j (range (count matrix))]
(reset! sum (+ @sum (nth (nth matrix j) i)))
)
(reset! sum-vector (conj @sum-vector @sum))
(reset! sum 0)
))
但是我得到了这个异常:clojure.lang.LazySeq 不能被强制转换为 clojure.lang.IFn ...我做错了什么?
【问题讨论】:
标签: for-loop vector clojure nested