id,summary,reporter,owner,description,type,status,priority,milestone,component,version,resolution,keywords,cc,os,architecture,failure,difficulty,testcase,blockedby,blocking,related
2659,Add sortOn and other *On functions,twanvl,,"Almost all uses of {{{sortBy}}} are of the form {{{sortBy (comparing f)}}}, {{{sortBy (compare `on` f)}}} or an equivalent construction. I propose that we add the more convenient function {{{sortOn}}} to Data.List:
{{{
sortOn          :: Ord b => (a -> b) -> [a] -> [a]
}}}
For consistency for the other `By` functions we should also add an `On` equivalent:
{{{
nubOn           :: Eq b => (a -> b) -> [a] -> [a]
deleteOn        :: Eq b => (a -> b) -> a -> [a] -> [a]
deleteFirstsOn  :: Eq b => (a -> b) -> [a] -> [a] -> [a]
unionOn         :: Eq b => (a -> b) -> [a] -> [a] -> [a]
intersectOn     :: Eq b => (a -> b) -> [a] -> [a] -> [a]
groupOn         :: Eq b => (a -> b) -> [a] -> [[a]]
sortOn          :: Ord b => (a -> b) -> [a] -> [a]
insertOn        :: Ord b => (a -> b) -> a -> [a] -> [a]
maximumOn       :: Ord b => (a -> b) -> [a] -> a
minimumOn       :: Ord b => (a -> b) -> [a] -> a
}}}",proposal,closed,normal,Not GHC,libraries/base,6.9,wontfix,,merehap,Unknown/Multiple,Unknown/Multiple,None/Unknown,Unknown,,,,
