Variant of Data.List functions like
where the comparison is performed on a key computed from the list elements.
In principle these functions could be replaced by e.g.
sortBy (compare ,
f will be re-computed for every comparison.
If the evaluation of
f is expensive,
our functions are better, since they buffer the results of