52700.fb2
--
(<=) или compare
-- Использование compare может оказаться более
-- эффективным для сложных типов.
compare x y
| x == y
=
EQ
| x <= y
=
LT
| otherwise =
GT
x <= y
=
compare x y /= GT
x <
y
=
compare x y == LT
x >= y
=
compare x y /= LT
x >
y
=
compare x y == GT
max x y
| x <= y
=
y
| otherwise =
x
min x y
| x <= y
=
x
| otherwise =
y
Все функции определены в декларативном стиле. Тип Ordering кодирует результат операции сравнения.
Два числа могут быть либо равны (значение EQ), либо первое меньше второго (значение LT), либо первое
больше второго (значение GT).
Обратите внимание на функцию compare. Мы не пишем дословное определение значений типа Ordering:
compare x y
| x == y
=
EQ
| x <
y