On Dec 21, 2008, at 8:52 AM, Martijn van Steenbergen wrote:

Hello all,

Data.Ord has a handy function called comparing, and its documentation shows an example of its use.

But what if you want to sort a list of values based on multiple criteria? It turns out there is a neat way to do this:

compareTuple = mconcat [comparing fst, comparing snd]

The default Monoid instances for Ordering and functions work exactly as required here. (Thanks to vixey in #haskell for the hint to look at monoids!)

Indeed, this is great to know. I can't help but notice that there is no documentation of any kind at all for the Monoid instance of Ordering; how were we supposed to know this behavior existed in the first place, except by hunting down the source code for the instance declaration?

-Jan-Willem Maessen

_______________________________________________
Haskell-Cafe mailing list
Haskell-Cafe@haskell.org
http://www.haskell.org/mailman/listinfo/haskell-cafe

Reply via email to