堆栈溢出递归函数haskell

use*_*128 0 stack-overflow 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
Run Code Online (Sandbox Code Playgroud)

Ing*_*ngo 5

|otherwise = n * power'' n k-1
Run Code Online (Sandbox Code Playgroud)

这是

|otherwise = (n * power'' n k)-1
Run Code Online (Sandbox Code Playgroud)

因此你永远用相同的论据来说明.