Pun*_*aik 0 memory clojure out-of-memory large-data lazy-sequences
我有以下(非常大)lazy-seq:
(def lazy-list (partition-all 100000 (take 10000000000000000000 (repeat 1))))
Run Code Online (Sandbox Code Playgroud)
我想计算其中的元素数量,为此我正在执行以下操作:
(time
(loop [ll lazy-list
c 0]
(if-not (seq (take 1 ll))
c
(recur (drop 1 ll)
(inc c)))))
Run Code Online (Sandbox Code Playgroud)
如果我运行这个,我会收到以下错误:
Execution error (OutOfMemoryError) at user/eval2043$fn (REPL:1).
Java heap space
Run Code Online (Sandbox Code Playgroud)
但如果我没有持有head任何地方,为什么我会看到这个OOM问题?