相关疑难解决方法(0)

我可以在程序中更改堆栈大小限制吗?

我可以通过传递+RTS -Kn给它来配置GHC编译的Haskell程序的最大堆栈大小,其中n有一些数字.

有没有办法在程序中更改此设置?

(我想对各种函数的堆栈消耗进行基准测试,因此尝试以各种限制运行它,捕获StackOverflow异常.)

stack haskell ghc

8
推荐指数
1
解决办法
434
查看次数

非尾递归函数在GHCi中没有爆炸.为什么?

我期待看到我的堆栈与以下代码打击..但它没有:

*Main> let blowwss x = if x == 0 then 0 else (1 + blowwss (x-1))
*Main> blowwss 1000000
1000000
Run Code Online (Sandbox Code Playgroud)

该函数似乎不是尾递归,所以我想知道我可能缺少什么.GHCi的堆栈是否比我想象的要大(我怎么能看到它的堆栈大小,顺便说一下?).它是否使用某种蹦床来克服这个问题?它是否足够智能将函数转换为迭代对应物?

谢谢

haskell functional-programming tail-recursion ghci

6
推荐指数
1
解决办法
437
查看次数