foldr

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)...)
foldr :: Foldable t => (a -> b -> b) -> b -> t a -> b
base Data.Foldable
foldr :: (Char -> a -> a) -> a -> ByteString -> a
bytestring Data.ByteString.Char8, bytestring Data.ByteString.Lazy.Char8
foldr, applied to a binary operator, a starting value (typically the right-identity of the operator), and a packed string, reduces the packed string using the binary operator, from right to left.
foldr :: (Char -> a -> a) -> a -> Text -> a
text Data.Text, text Data.Text.Lazy
O(n) foldr, applied to a binary operator, a starting value (typically the right-identity of the operator), and a Text, reduces the Text using the binary operator, from right to left. Subject to fusion.
foldr :: (Key -> b -> b) -> b -> IntSet -> b
containers Data.IntSet
O(n). Fold the elements in the set using the given right-associative binary operator, such that foldr f z == foldr f z . toAscList. For example, > toAscList set = foldr (:) [] set
foldr :: (Word8 -> a -> a) -> a -> ByteString -> a
bytestring Data.ByteString, bytestring Data.ByteString.Lazy
foldr, applied to a binary operator, a starting value (typically the right-identity of the operator), and a ByteString, reduces the ByteString using the binary operator, from right to left.
foldr :: (a -> b -> b) -> b -> IntMap a -> b
containers Data.IntMap.Strict, containers Data.IntMap.Lazy
O(n). Fold the values in the map using the given right-associative binary operator, such that foldr f z == foldr f z . elems. For example, > elems map = foldr (:) [] map > let f a len = len + (length a) > foldr f 0 (fromList [(5,"a"), (3,"bbb")]) == 4
foldr :: (a -> b -> b) -> b -> Map k a -> b
containers Data.Map.Lazy, containers Data.Map.Strict
O(n). Fold the values in the map using the given right-associative binary operator, such that foldr f z == foldr f z . elems. For example, > elems map = foldr (:) [] map > let f a len = len + (length a) > foldr f 0 (fromList [(5,"a"), (3,"bbb")]) == 4
foldr :: (a -> b -> b) -> b -> Set a -> b
containers Data.Set
O(n). Fold the elements in the set using the given right-associative binary operator, such that foldr f z == foldr f z . toAscList. For example, > toAscList set = foldr (:) [] set
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.
foldr' :: Foldable t => (a -> b -> b) -> b -> t a -> b
base Data.Foldable
Fold over the elements of a structure, associating to the right, but strictly.
foldr1 :: Foldable t => (a -> a -> a) -> t a -> a
base Data.Foldable
foldrM :: (Foldable t, Monad m) => (a -> b -> m b) -> b -> t a -> m b
base Data.Foldable
Monadic fold over the elements of a structure, associating to the right, i.e. from right to left.
foldr' :: (Char -> a -> a) -> a -> ByteString -> a
bytestring Data.ByteString.Char8
'foldr\'' is a strict variant of foldr
foldr' :: (Key -> b -> b) -> b -> IntSet -> b
containers Data.IntSet
O(n). A strict version of foldr. Each application of the operator is evaluated before using the result in the next application. This function is strict in the starting value.
foldr' :: (Word8 -> a -> a) -> a -> ByteString -> a
bytestring Data.ByteString
'foldr\'' is like foldr, but strict in the accumulator.
foldr' :: (a -> b -> b) -> b -> IntMap a -> b
containers Data.IntMap.Strict, containers Data.IntMap.Lazy
O(n). A strict version of foldr. Each application of the operator is evaluated before using the result in the next application. This function is strict in the starting value.
foldr' :: (a -> b -> b) -> b -> Map k a -> b
containers Data.Map.Lazy, containers Data.Map.Strict
O(n). A strict version of foldr. Each application of the operator is evaluated before using the result in the next application. This function is strict in the starting value.
foldr' :: (a -> b -> b) -> b -> Set a -> b
containers Data.Set
O(n). A strict version of foldr. Each application of the operator is evaluated before using the result in the next application. This function is strict in the starting value.
foldr1 :: (Char -> Char -> Char) -> ByteString -> Char
bytestring Data.ByteString.Char8, bytestring Data.ByteString.Lazy.Char8
foldr1 is a variant of foldr that has no starting value argument, and thus must be applied to non-empty ByteStrings

Show more results