我定义了一个简单的函数来查找数字的绝对值:
let abs n | n >= 0 = n | otherwise = -n
使用变量
调用该函数Prelude> let x = -10
Prelude|
Prelude> abs x
10
使用值
调用该函数Prelude> abs -10
<interactive>:65:1:
Non type-variable argument in the constraint: Num (a -> a)
(Use FlexibleContexts to permit this)
When checking that ‘it’ has the inferred type
it :: forall a. (Num a, Num (a -> a), Ord a) => a -> a
我不理解第二次调用的失败。我使用的是GHCi,版本7.10.2。
答案 0 :(得分:4)
abs -10
实际上意味着abs - 10
,即abs
和10
的减法。
您想要abs (-10)
。