哈斯克尔 - 论点太少了

时间:2014-11-26 17:32:23

标签: haskell

我想写一个Haskell程序来计算2个给定数字之间的数字之和。 我有以下代码:

sumInt :: Int -> Int -> Int
sumInt x y
   | x > y = 0
   | otherwise = x + sumInt x+1 y

但是当我编译它时,我收到以下错误:

  

SumInt适用于太少的参数。

我不明白我做错了什么。有什么想法吗?

1 个答案:

答案 0 :(得分:5)

x+1周围需要括号:

| otherwise = x + sumInt (x + 1) y

原因是函数应用程序比运算符更紧密,因此无论何时看到

f x <> y

始终将其解析为

(f x) <> y

从不作为

f (x <> y)