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 ループをいくつか持ち、その中にいくつかの ifs と 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]
)
) )
そもそもなぜうまくいかないのか、誰かが理解するのを手伝ってくれますか?