小编lox*_*i95的帖子

为什么基于参数的定义比递归更有效?

我有一个递归函数sumdown :: Int - > Int,它将所有自然数的总和从其参数返回到零,例如,sumdown 3应该返回总和3 + 2 + 1 + 0 = 6.

sumdown :: Int -> Int
sumdown 0 = 0
sumdown x = x + sumdown(x-1)
Run Code Online (Sandbox Code Playgroud)

我也有这个我不完全理解的定义,有人可以请我为此评估一下,并告诉我为什么它可能比上面的定义更有效?

sumdown n = sumd n 0
sumd 0 a = a
sumd n a = sumd (n-1) (n+a)
Run Code Online (Sandbox Code Playgroud)

谢谢.

recursion haskell

2
推荐指数
2
解决办法
95
查看次数

标签 统计

haskell ×1

recursion ×1