相关疑难解决方法(0)

Clojure:简单的阶乘导致堆栈溢出

我究竟做错了什么?简单的递归几千次调用深度抛出一个StackOverflowError.

如果Clojure递归的限制如此之低,我该如何依赖它?

(defn fact[x]
  (if (<= x 1) 1 (* x  (fact (- x 1))  )))

user=> (fact 2)
2

user=> (fact 4)
24

user=> (fact 4000)
java.lang.StackOverflowError (NO_SOURCE_FILE:0)
Run Code Online (Sandbox Code Playgroud)

stack-overflow recursion clojure

27
推荐指数
3
解决办法
2万
查看次数

标签 统计

clojure ×1

recursion ×1

stack-overflow ×1