Haskell 输入上的分析错误'=';
我一直收到这个信息,我做错了什么Haskell 输入上的分析错误'=';,haskell,Haskell,我一直收到这个信息,我做错了什么 quadrant :: Float -> Float -> Quadrant quadrant x y |x = 0 && y = 0 = Origin |x > 0 && y = 0 = X_ Axis_Positive |x > 0 && y > 0 = Quadrant_1 |x = 0 && y > 0 = Y_ Axis_
quadrant :: Float -> Float -> Quadrant
quadrant x y
|x = 0 && y = 0 = Origin
|x > 0 && y = 0 = X_ Axis_Positive
|x > 0 && y > 0 = Quadrant_1
|x = 0 && y > 0 = Y_ Axis_Positive
|x < 0 && y > 0 = Quadrant_2
|x < 0 && y = 0 = X_ Axis_Negative
|x < 0 && y < 0 = Quadrant_3
|x = 0 && y < 0 = Y_ Axis_Negative
|x > 0 && y < 0 = Quadrant_4
|otherwise = error "Program error: Non-Exhaustive guards in function: quadrant"
quadrant::Float->Float->quadrant
象限x y
|x=0&&y=0=原点
|x>0&&y=0=x轴正
|x>0&&y>0=象限_1
|x=0&&y>0=y轴为正
|x<0&&y>0=象限2
|x<0&&y=0=x轴负
|x<0&&y<0=象限3
|x=0&&y<0=y轴负
|x>0&&y<0=象限4
|否则=错误“程序错误:功能中的非穷举保护:象限”
测试相等性的运算符是=
,其中=
是语言语法的一部分。(==)
不是语言语法的一部分,而是前奏曲的一部分。它是用中缀4==定义的;(==)::(Eq a)=>a->a->Bool
我并不反对基本答案-但我希望对最后几个词进行细化,可能还有一个参考(例如,“what”=/code>是什么)。语义学。说语法可能更准确。我指的是语言结构的规则,而不是整个语言本身。@user2864740(==)
是在Haskell标准库中定义的类型类方法,=
是Haskell语言本身的基本部分<代码>=
不能进一步分解,这与C/C++/C#/Java/etc中的{
和}
以及Python中的:
的意义相同。