The
maximumBy function takes a comparison function and a list
and returns the greatest element of the list by the comparison
function. The list must be finite and non-empty. List order is used as
a tie-breaker: if there are multiple greatest elements, the last of
them is chosen.
Examples
We can use this to find the longest entry of a list:
>>> maximumBy (\x y -> compare (length x) (length y)) ["Hello", "World", "!", "Longest", "bar"]
"Longest"
>>> minimumBy (\(a, b) (c, d) -> compare (abs (a - b)) (abs (c - d))) [(10, 15), (1, 2), (3, 5)]
(10, 15)