在我的练习中,我必须决定函数是什么类型的递归。
我们必须从线性递归、尾递归和保护递归中进行选择,但我不太明白后两者之间的区别。
有人可以解释一下保护递归和尾递归之间的区别吗?
我们要区分的功能供参考:
pow2 0 = 1
pow2 n = 2 * pow2 (n-1)
factAux r i n
| i <= n = factAux (i * r) (i + 1) n | otherwise = r
factorial = factAux 1 1
init [x] = []
init (x:xs) = x : init xs
binom n 0 = 1
binom n k
| n == k = 1
| otherwise = binom (n - 1) k + binom (n - 1) (k …Run Code Online (Sandbox Code Playgroud)