2013-11-22 147 views
0

下面是Haskell中幂函数的一个实现。但是我有堆栈溢出错误。不知道如何解决递归函数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 

回答

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

这是

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

,因此你永远与相同参数递归。

+1

好,我不得不'|否则= N *功率 '' N(K-1)' – user1876128

+0

感谢您检阅 – user1876128

0

--Found我的问题

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