Proposal: Implement minimumOn, maximumOn to mirror sortOn

Eric Mertens emertens at gmail.com
Tue Oct 30 00:09:04 UTC 2018


Having the consistency with `sortOn` seems like a win, but the reason we
have `sortOn` is that the implementation is not completely trivial. It has
to be ever so slightly smart to reuse the projections when sorting.

On the other hand, we have the definitions:

minimumOn = minimumBy . comparing
maximumOn = maximumBy . comparing

It’s not obvious to me that this needs its own name instead of simply
mentioning that `comparing` exists in the haddock documentation for
`minimumBy` and `maximumBy`.

Is it a foregone conclusion that we should maintain consistency with
`minimum` and `maximum` on their result types? I consider these types
mistakes and would have preferred to see `Maybe` involved.

minimumOn :: (Foldable t, Ord b) => (a -> b) -> t a -> Maybe a

I’m not sure why it makes sense to force ourselves into returning an
imprecise exception in the empty list case.

Best regards,
Eric Mertens
-------------- next part --------------
An HTML attachment was scrubbed...
URL: <http://mail.haskell.org/pipermail/libraries/attachments/20181029/533133a1/attachment.html>


More information about the Libraries mailing list