我正在练习 Haskell,并编写一个求和函数,它接受两个数字(上限和下限)并进行求和。
即,summation 0 10
将返回 55
我可以让它大部分工作,但无法弄清楚如何仅使用两个参数来获取它。
这是我到目前为止所拥有的:
summation :: Integer -> Integer -> Integer -> Integer
summation x y sum =
if (y<x) then
sum
else
summation x (y-1) (sum+y)
所以这很好用,但我需要做
summation 0 10 0
使其正常工作。我不确定如何在 Haskell 中仅使用两个参数来实现此目的。
最佳答案
你把它包起来。
summation :: Integer -> Integer -> Integer
summation x y = summation' x y 0
summation' :: Integer -> Integer -> Integer -> Integer
summation' x y sum =
if (y<x) then
sum
else
summation' x (y-1) (sum+y)
关于haskell - Haskell 中的基本求和,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5386406/