【发布时间】:2014-11-16 06:10:10
【问题描述】:
在 clojure v1.6.0 中,此代码永远运行并消耗 100% 的一个内核:
(defn average [x y] (/ (+ x y) 2))
(defn improve [guess x]
(average guess (/ x guess)))
(defn sqrt-iter [guess x]
(sqrt-iter (improve guess x) x))
(sqrt-iter 1 4)
我希望它会立即抛出 StackOverflowError,但事实并非如此。
任何解释为什么会发生?
【问题讨论】: