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中的
的意义相同。