n = (count somevector)
(foo [w] ( for [i (range n)
j (range w)
:let [n (* i j)]
:while ( < i j)
]
(println n)))
当我运行它时。
=> (foo 10)
ClassCastException
clojure
。lang
. LazySeq
不能转换为clojure
. lang
. IFn
HelloWorld.core/foo
我真正想做的是有几个嵌套的 for 循环,并有一些 if 和 else 在里面做一些检查。
编辑 ::
事实证明,以下也会导致错误
(defn foo [arg]
(
for [ i (range (count vector)) ]
(
for [j arg ]
[i j]
)
) )
IllegalArgumentException 不知道如何从:java.lang.Long clojure.lang.RT.seqFrom 创建 ISeq
编辑::
以下作品
(defn foo [arg]
(def w arg)
(for [ i (range (count vector)) ]
(
for [j (range v) ]
[i j]
)
) )
现在有人可以帮我理解为什么它一开始就不起作用吗?