gpt4 book ai didi

haskell - 为什么下面的 if 条件中的负数会引发错误?

转载 作者:行者123 更新时间:2023-12-02 15:14:17 24 4
gpt4 key购买 nike

我正在 Pluralsight 中观看“Haskell 基础知识第 1 部分”。在第二章中,作者展示了一个非常简单的函数,其中包含if。当我尝试时,每次尝试带有负数的函数时都会出错。这是函数

posOrNeg x = 
if x >= 0
then "Positive"
else "Negative"

当我尝试使用正数的方法时,它工作正常,但是当我调用使用负数的方法时,winGHCi 会抛出以下错误。
“没有因使用‘print’而产生 (Show (a0 -> [Char]))) 的实例...”
是否比这里的函数更重要?

最佳答案

当将同一函数应用于相同类型的正数时效果很好,因此将函数应用于负数时不可能出现类型错误。

如果没有看到代码,最可能的解释是您编写了类似 posOrNeg -42 的内容,它与 posOrNeg - 42 相同,并尝试从中减去 42 posOrNeg (这是不可能的,因为当然,您不能从函数中减去数字)。将函数应用于负数的正确语法是 posOrNeg (-42),并在数字两边加上括号,因此无法将 - 解析为中缀运算符.

关于haskell - 为什么下面的 if 条件中的负数会引发错误?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/25955604/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com