这里是Haskell的新手。
我有这个功能:
addNums num1 num2 =
num1 + num2
当我尝试使用GHCi运行addNums 1 -2
时,它会返回以下错误:
<interactive>:40:1: error:
* No instance for (Show (Integer -> Integer))
arising from a use of `print'
(maybe you haven't applied a function to enough arguments?)
* In a stmt of an interactive GHCi command: print it
我注意到,为了使它按预期运行,我需要添加括号:addNums 1 (-2)
。为什么?
您编写的代码被解析为(addNums 1) - 2
,因此编译器获取addNums 1
的结果,即函数Integer -> Integer
,并尝试从中减去2
。
为了获得正确的传递顺序,您需要在第二个参数周围添加括号:
addNum 1 (-2)