我想写一个Haskell程序来计算2个给定数字之间的数字之和。 我有以下代码:
sumInt :: Int -> Int -> Int
sumInt x y
| x > y = 0
| otherwise = x + sumInt x+1 y
但是当我编译它时,我收到以下错误:
SumInt适用于太少的参数。
我不明白我做错了什么。有什么想法吗?
答案 0 :(得分:5)
x+1
周围需要括号:
| otherwise = x + sumInt (x + 1) y
原因是函数应用程序比运算符更紧密,因此无论何时看到
f x <> y
始终将其解析为
(f x) <> y
从不作为
f (x <> y)