私は Stuart Halloway の本 Programming Clojure に取り組もうとしています。この機能的なもの全体は、私にとって非常に新しいものです。
方法がわかりました
(defn fibo[]
(map first (iterate (fn [[a b]] [b (+ a b)]) [0 1])))
フィボナッチ数列を遅延生成します。私はなぜなのか理解していない
(last (take 1000000 (fibo)))
働きながら
(nth (fibo) 1000000)
OutOfMemoryError をスローします。この2つの表現の違いを誰か説明してくれませんか? (nth) はどういうわけかシーケンスの先頭を保持していますか?
ありがとう!