2013-11-22 155 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)