data-extra 2.5.3 → 2.5.4
raw patch · 2 files changed
+8/−1 lines, 2 files
Files
- data-extra.cabal +1/−1
- src/Data/List/Extra.hs +7/−0
data-extra.cabal view
@@ -1,5 +1,5 @@ name: data-extra-version: 2.5.3+version: 2.5.4 synopsis: Extra utilities for working on Data.* types. description: Extra utilities for working on Data.* types. license: BSD3
src/Data/List/Extra.hs view
@@ -2,9 +2,11 @@ module Data.List.Extra where +import Control.Arrow import Data.Bool.Extra import Data.List import Data.Maybe+import Data.Ord -- | When a list is non-null, pass it to a function, otherwise use the -- default.@@ -33,3 +35,8 @@ maxList :: (Num t, Ord t) => [t] -> t maxList [] = 0 maxList xs = maximum xs++-- | 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 (f &&& id)