Я попытался сделать функцию, чтобы дать имя квадранта при вводе координат 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