【发布时间】:2015-01-28 02:24:14
【问题描述】:
如何使这个 Haskell 幂函数尾递归?
turboPower a 0 = 1
turboPower a b
| even b = turboPower (a*a) (b `div` 2)
| otherwise = a * turboPower a (b-1)
【问题讨论】:
-
代码前面不需要
>。只需缩进四个空格。 -
顺便说一下,您应该使用
quot而不是div。另外请注意,通常的(^)也是基于快速求幂算法。