[Haskell-cafe] A small oversight
andrewcoppin at btinternet.com
Sat Feb 20 07:45:21 EST 2010
Ben Millwood wrote:
> I can't answer your question (about getting minBy into the libraries)
> but I thought I'd point out some tricks:
> On Sat, Feb 20, 2010 at 10:47 AM, Andrew Coppin
> <andrewcoppin at btinternet.com> wrote:
>> Also, constructions like
>> sortBy (compare `on` foo)
>> must surely be very common.
> Common enough that Data.Ord introduces comparing:
> comparing :: (Ord a) => (b -> a) -> b -> b -> Ordering
> comparing = (compare `on`)
Heh. I didn't even notice that Data.Ord existed...
> But it would still be useful to have sortOn et al to capture the
> common technique when your sorting property is potentially expensive
> (sortOn length, for example):
> sortOn f = map fst . sortBy (comparing snd) . map (\x -> (x, f x))
> a technique which I believe is called a Schwarzian transform.
Yes, that looks quite useful...
> swap_ord (compare x y) = compare y x, so usually flip compare fills
> this requirement :)
Damnit, why didn't *I* think of that??
More information about the Haskell-Cafe