此代碼的工作:Clojure的(範圍)和DEF -light表(迭代增量0)差
(def n1 (range))
(println
(->> n1
(take 30))
)
此代碼不起作用:
(def n2 (iterate inc 0))
(println
(->> n2
(take 20))
)
經過修改的碼(n2是功能)工作原理:
(def n2 #(iterate inc 0))
(println
(->> (n2)
(take 20))
)
怎麼會第二代碼是不允許的?
在第一代碼,(範圍)返回無限序列(0 ...)
在第二代碼,(迭代增量0)也返回無限序列(0 ...)
什麼變得如此不同?
請指導。謝謝。
(編輯)
高興聽到碼#1和碼#1是等價的。
然而,在我的環境(光表)不能EVAL它:
我認爲這是一個光照問題。你可以檢查它是否在純clojure repl? –
是的,我同意。我在控制檯上嘗試了clj REPL模式,代碼#2不會產生錯誤。謝謝。 –