foldr package:containers
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
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
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
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
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.
Fold the keys and values in the map using the given
right-associative binary operator, such that
foldrWithKey f
z == foldr (uncurry f) z . toAscList.
For example,
keys map = foldrWithKey (\k x ks -> k:ks) [] map
let f k a result = result ++ "(" ++ (show k) ++ ":" ++ a ++ ")"
foldrWithKey f "Map: " (fromList [(5,"a"), (3,"b")]) == "Map: (5:a)(3:b)"
A strict version of
foldrWithKey. Each
application of the operator is evaluated before using the result in
the next application. This function is strict in the starting value.
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.
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.
Fold the keys and values in the map using the given
right-associative binary operator, such that
foldrWithKey f
z == foldr (uncurry f) z . toAscList.
For example,
keys map = foldrWithKey (\k x ks -> k:ks) [] map
let f k a result = result ++ "(" ++ (show k) ++ ":" ++ a ++ ")"
foldrWithKey f "Map: " (fromList [(5,"a"), (3,"b")]) == "Map: (5:a)(3:b)"
A strict version of
foldrWithKey. Each
application of the operator is evaluated before using the result in
the next application. This function is strict in the starting value.
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.
Builds a sequence from a seed value. Takes time linear in the number
of generated elements. WARNING: If the number of generated
elements is infinite, this method will not terminate.