[Haskell-cafe] Is this haskelly enough?
Shachaf Ben-Kiki
shachaf at gmail.com
Tue Jul 17 19:17:24 EDT 2007
> on, which will appear in Data.Function in the next release of base,
> is defined thusly:
>
> on :: (b -> b -> c) -> (a -> b) -> a -> a -> c
> (*) `on` f = \x y -> f x * f y
You can also use Data.Ord.comparing, in this case -- comparing is just
(compare `on`).
>From Ord.hs:
-- |
-- > comparing p x y = compare (p x) (p y)
--
-- Useful combinator for use in conjunction with the @xxxBy@ family
-- of functions from "Data.List", for example:
--
-- > ... sortBy (comparing fst) ...
comparing :: (Ord a) => (b -> a) -> b -> b -> Ordering
comparing p x y = compare (p x) (p y)
Shachaf
More information about the Haskell-Cafe
mailing list