1
Helo、私はclojureを学習するために、シーケンスに作用するclojure.core関数に興味を持っています。最近、私はいくつかの奇妙な行動に気づいたとfolling表現との間の差の、について説明したいと思います:clojureの格納と式のシーケンスの使用
ことは私は何をしようとしていることは、これは次のとおりです。
user=> (reduce + (take-while (partial > 1000) (iterate inc 1)))
499500
しかし、私はdef
と(iterate inc 1)
を保存するときエラーが表示されます。
user=> (def a (iterate inc 1))
#'user/a
user=> (reduce + (take-while (partial > 1000) (a)))
java.lang.ClassCastException: clojure.lang.Cons cannot be cast to clojure.lang.IFn (NO_SOURCE_FILE:0)
誰かがiterate inc 1
を格納し、式の中で直接それを使用しての間でどのような違いを説明してくださいもらえますか? a
はレイジーシーケンスですが、何かが見つからないことがわかります...
ありがとうございます。
ahhはい、clojure.lang.consがclojure.lang.IFnにキャストされているというエラーメッセージについて説明しています。 – wespiserA