堆栈溢出递归函数haskell

时间:2013-11-22 11:09:22

标签: haskell stack-overflow

这是Haskell中幂函数的一个实现。但我有堆栈溢出错误。不知道如何修复

power''::Integer->Integer->Integer
power'' _ 0=1
power'' 1 _=1
power'' n k
    |even k = power'' (n*n)  (k `div` 2)
    |otherwise = n * power'' n k-1

2 个答案:

答案 0 :(得分:5)

|otherwise = n * power'' n k-1

这是

|otherwise = (n * power'' n k)-1

因此你会永远使用相同的论证。

答案 1 :(得分:0)

- 找到了我的问题

 |otherwise = n * power'' n (k-1)