我试图在输入x和y坐标时使函数给出象限名称。但是,我收到错误: “输入解析错误”='象限给出函数的错误
失败,模块加载:无。“
我试着添加一个“|否则......”但仍然没有工作。我确信我涵盖了x和y的所有可能性。
data Quadrants = Origin |
Quadrant_I | Quadrant_II | Quadrant_III | Quadrant_IV |
X_Axis_Positive | X_Axis_Negative | Y_Axis_Positive | Y_Axis_Negative
deriving (Show, Eq)
quadrant :: Float -> Float -> Quadrants
quadrant x y
|x>0 && y>0 = Quadrant_I
|x<0 && y>0 = Quadrant_II
|x<0 && y<0 = Quadrant_III
|x>0 && y<0 = Quadrant_IV
|x=0 && y=0 = Origin
|x>0 && y=0 = X_Axis_Positive
|x<0 && y=0 = X_Axis_Negative
|x=0 && y>0 = Y_Axis_Positive
|x=0 && y<0 = Y_Axis_Negative
您可以使用'compare 0'来代替'sign',并在结果'Ordering'值上进行模式匹配。 – chepner