几乎相同的程序生成无限的惰性随机序列。第一个不会崩溃,第二个会因为OutOfMemoryError异常而崩溃。为什么?
但是以下内容很快就会崩溃:
;Return infinite lazy sequence of random numbers
(defn inf-rand[] (lazy-seq (cons (rand) (inf-rand))))
;Never returns. Burns the CPU but won't crash and lives forever.
(last (inf-rand))
但是以下内容很快就会崩溃:
;Return infinite lazy sequence of random numbers
(defn inf-rand[] (lazy-seq (cons (rand) (inf-rand))))
(def r1 (inf-rand))
;Crash with "OutOfMemoryError"
(last r1)