Рассмотрим "обычную" сортировку
sort xs = ... a < b ...
Такие сорта должны использовать compare
или его друзей, таких как <
. Так что, если вы уже реализовали такую вещь, тогда вместо compare a b
или a < b
вы можете вместо compare (snd a) (snd b)
или snd a < snd b
.
sort xs = ... snd a < snd b ...
Конечно, если вы умны, вы абстрагируете «аксессор» и сделаете его дополнительным входом для функции сортировки:
sortComparingOn f xs = ... f a < f b ...
Вы могли бы вообще абстрагировать компаратор:
sortBy cmp xs = ... a `cmp` b ...
sortBy
предоставляется в Data.List, как уже упоминалось.