我在Pluralsight观看'Haskell Fundamentals Part 1'.在第二章中,作者用if表示了一个非常简单的函数.当我尝试它时,每当我尝试使用带负数的函数时,我都会收到错误.这是功能
posOrNeg x =
if x >= 0
then "Positive"
else "Negative"
Run Code Online (Sandbox Code Playgroud)
当我尝试使用正数的方法时它工作正常,但是当我用负数调用方法时,winGHCi会抛出以下错误.
"没有实例(显示(a0 - > [Char])))因使用'print'而产生的......"
它还有更多的功能吗?
sep*_*p2k 14
当将相同的函数应用于相同类型的正数时,无法将函数应用于负数时出现类型错误.
在没有看到代码的情况下,最可能的解释是你写了类似的东西posOrNeg -42,posOrNeg - 42并且尝试从中减去42 posOrNeg(这是不可能的,因为当然,你不能从函数中减去一个数字).将函数应用于负数的正确语法是posOrNeg (-42)使用数字周围的括号,因此无法将其解析-为中缀运算符.