Function to add to Data.List

John Wiegley johnw at
Sat Apr 5 21:53:04 UTC 2014

I heard a talk that mentioned this transform today at Hac NYC, and was
surprised it wasn't already in Data.List:

    -- | Sort a list using a key on each element.  This implements the
    --   decorate-sort-undecorate paradigm, also called a Schwarzian transform.
    sortByKey :: Ord b => (a -> b) -> [a] -> [a]
    sortByKey f = map snd . sortBy (comparing fst) . map (\x -> (f x, x))

I would like to propose adding it.


More information about the Libraries mailing list