[GHC] #9004: Add sortOn function to Data.List
GHC
ghc-devs at haskell.org
Wed Apr 16 18:22:09 UTC 2014
#9004: Add sortOn function to Data.List
-------------------------------------------+-------------------------------
Reporter: JohnWiegley | Owner:
Type: feature request | Status: new
Priority: normal | Milestone: 7.10.1
Component: libraries/base | Version: 7.8.2
Keywords: | Operating System:
Architecture: Unknown/Multiple | Unknown/Multiple
Difficulty: Easy (less than 1 hour) | Type of failure:
Blocked By: | None/Unknown
Related Tickets: | Test Case:
| Blocking:
-------------------------------------------+-------------------------------
The following passed for two weeks on the libraries mailing list without
any dissenting votes.
The request is to add the following function to Data.List:
{{{
-- | Sort a list by comparing the results of a key function applied to
each
-- element. @sortOn f@ is equivalent to @sortBy . comparing f@, but has
the
-- performance advantage of only evaluating @f@ once for each element in
the
-- input list. This is called the decorate-sort-undecorate paradigm, or
-- Schwartzian transform.
sortOn :: Ord b => (a -> b) -> [a] -> [a]
sortOn f = map snd . sortBy (comparing fst)
. map (\x -> let y = f x in y `seq` (y, x))
}}}
--
Ticket URL: <http://ghc.haskell.org/trac/ghc/ticket/9004>
GHC <http://www.haskell.org/ghc/>
The Glasgow Haskell Compiler
More information about the ghc-tickets
mailing list