迭代会产生StackOverflow错误

时间:2015-08-25 21:58:39

标签: clojure stack-overflow fibonacci frege

所以我刚刚开始使用Frege和Haskell。我有使用函数式语言的经验,因为我现在使用Clojure已有几年了。 我想尝试的第一件事就是我在Fibonacci数字上的常用方法。

next_fib (a, b) = (b, a + b)
fibs = map fst $ iterate next_fib (0, 1)
fib x = head $ drop x fibs

这就是弗雷格的结果。它有效,但对于非常高的数量,例如(fib 4000),它抛出StackOverflow错误。这让我感到惊讶,因为Clojure中的相同功能可以正常工作。这是一个弗雷格错误还是我对整个懒惰的评估错误?

0 个答案:

没有答案