Ord a => (a -> a -> Ordering) -> [a] -> [a]

sortBy :: (a -> a -> Ordering) -> [a] -> [a]
base Data.List
The sortBy function is the non-overloaded version of sort.
insertBy :: (a -> a -> Ordering) -> a -> [a] -> [a]
base Data.List
The non-overloaded version of insert.
scanl1 :: (a -> a -> a) -> [a] -> [a]
base Prelude, base Data.List
scanl1 is a variant of scanl that has no starting value argument: > scanl1 f [x1, x2, ...] == [x1, x1 `f` x2, ...]
scanr1 :: (a -> a -> a) -> [a] -> [a]
base Prelude, base Data.List
scanr1 is a variant of scanr that has no starting value argument.
maximumBy :: (a -> a -> Ordering) -> [a] -> a
base Data.List
The maximumBy function takes a comparison function and a list and returns the greatest element of the list by the comparison function. The list must be finite and non-empty.
minimumBy :: (a -> a -> Ordering) -> [a] -> a
base Data.List
The minimumBy function takes a comparison function and a list and returns the least element of the list by the comparison function. The list must be finite and non-empty.
maximumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
base Data.Foldable
The largest element of a non-empty structure with respect to the given comparison function.
minimumBy :: Foldable t => (a -> a -> Ordering) -> t a -> a
base Data.Foldable
The least element of a non-empty structure with respect to the given comparison function.
foldl1 :: (a -> a -> a) -> [a] -> a
base Prelude, base Data.List
foldl1 is a variant of foldl that has no starting value argument, and thus must be applied to non-empty lists.
foldr1 :: (a -> a -> a) -> [a] -> a
base Prelude, base Data.List
foldr1 is a variant of foldr that has no starting value argument, and thus must be applied to non-empty lists.
foldl1' :: (a -> a -> a) -> [a] -> a
base Data.List
A strict version of foldl1
scanl :: (a -> b -> a) -> a -> [b] -> [a]
base Prelude, base Data.List
scanl is similar to foldl, but returns a list of successive reduced values from the left: > scanl f z [x1, x2, ...] == [z, z `f` x1, (z `f` x1) `f` x2, ...] Note that > last (scanl f z xs) == foldl f z xs.
scanr :: (a -> b -> b) -> b -> [a] -> [b]
base Prelude, base Data.List
scanr is the right-to-left dual of scanl. Note that > head (scanr f z xs) == foldr f z xs.
foldl1 :: Foldable t => (a -> a -> a) -> t a -> a
base Data.Foldable
foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
base Data.Foldable
zipWith :: (a -> b -> c) -> [a] -> [b] -> [c]
base Prelude, base Data.List
zipWith generalises zip by zipping with the function given as the first argument, instead of a tupling function. For example, zipWith (+) is applied to two lists to produce the list of corresponding sums.
foldl :: (a -> b -> a) -> a -> [b] -> a
base Prelude, base Data.List
foldl, applied to a binary operator, a starting value (typically the left-identity of the operator), and a list, reduces the list using the binary operator, from left to right: > foldl f z [x1, x2, ..., xn] == (...((z `f` x1) `f` x2) `f`...) `f` xn The list must be finite.
foldl' :: (a -> b -> a) -> a -> [b] -> a
base Data.List
A strict version of foldl.
foldr :: (a -> b -> b) -> b -> [a] -> b
base Prelude, base Data.List
foldr, applied to a binary operator, a starting value (typically the right-identity of the operator), and a list, reduces the list using the binary operator, from right to left: > foldr f z [x1, x2, ..., xn] == x1 `f` (x2 `f` ... (xn `f` z)...)
liftA2 :: Applicative f => (a -> b -> c) -> f a -> f b -> f c
base Control.Applicative
Lift a binary function to actions.

Show more results