Hoogle Search
Within LTS Haskell 24.26 (ghc-9.10.3)
Note that Stackage only displays results for the latest LTS and Nightly snapshot. Learn more.
fromList :: Hashable k => [(k, v)] -> HashMap k vunordered-containers Data.HashMap.Lazy Construct a map with the supplied mappings. If the list contains duplicate mappings, the later mappings take precedence.
fromListWith :: Hashable k => (v -> v -> v) -> [(k, v)] -> HashMap k vunordered-containers Data.HashMap.Lazy Construct a map from a list of elements. Uses the provided function f to merge duplicate entries with (f newVal oldVal).
Examples
Given a list xs, create a map with the number of occurrences of each element in xs:let xs = ['a', 'b', 'a'] in fromListWith (+) [ (x, 1) | x <- xs ] = fromList [('a', 2), ('b', 1)]Given a list of key-value pairs xs :: [(k, v)], group all values by their keys and return a HashMap k [v].let xs = [('a', 1), ('b', 2), ('a', 3)] in fromListWith (++) [ (k, [v]) | (k, v) <- xs ] = fromList [('a', [3, 1]), ('b', [2])]Note that the lists in the resulting map contain elements in reverse order from their occurrences in the original list. More generally, duplicate entries are accumulated as follows; this matters when f is not commutative or not associative.fromListWith f [(k, a), (k, b), (k, c), (k, d)] = fromList [(k, f d (f c (f b a)))]
fromListWithKey :: Hashable k => (k -> v -> v -> v) -> [(k, v)] -> HashMap k vunordered-containers Data.HashMap.Lazy Construct a map from a list of elements. Uses the provided function to merge duplicate entries.
Examples
Given a list of key-value pairs where the keys are of different flavours, e.g:data Key = Div | Sub
and the values need to be combined differently when there are duplicates, depending on the key:combine Div = div combine Sub = (-)
then fromListWithKey can be used as follows:fromListWithKey combine [(Div, 2), (Div, 6), (Sub, 2), (Sub, 3)] = fromList [(Div, 3), (Sub, 1)]
More generally, duplicate entries are accumulated as follows;fromListWith f [(k, a), (k, b), (k, c), (k, d)] = fromList [(k, f k d (f k c (f k b a)))]
toList :: HashMap k v -> [(k, v)]unordered-containers Data.HashMap.Lazy Return a list of this map's elements. The list is produced lazily. The order of its elements is unspecified, and it may change from version to version of either this package or of hashable.
fromList :: Hashable k => [(k, v)] -> HashMap k vunordered-containers Data.HashMap.Strict Construct a map with the supplied mappings. If the list contains duplicate mappings, the later mappings take precedence.
fromListWith :: Hashable k => (v -> v -> v) -> [(k, v)] -> HashMap k vunordered-containers Data.HashMap.Strict Construct a map from a list of elements. Uses the provided function f to merge duplicate entries with (f newVal oldVal).
Examples
Given a list xs, create a map with the number of occurrences of each element in xs:let xs = ['a', 'b', 'a'] in fromListWith (+) [ (x, 1) | x <- xs ] = fromList [('a', 2), ('b', 1)]Given a list of key-value pairs xs :: [(k, v)], group all values by their keys and return a HashMap k [v].let xs = ('a', 1), ('b', 2), ('a', 3)] in fromListWith (++) [ (k, [v]) | (k, v) <- xs ] = fromList [('a', [3, 1]), ('b', [2])]Note that the lists in the resulting map contain elements in reverse order from their occurrences in the original list. More generally, duplicate entries are accumulated as follows; this matters when f is not commutative or not associative.fromListWith f [(k, a), (k, b), (k, c), (k, d)] = fromList [(k, f d (f c (f b a)))]
fromListWithKey :: Hashable k => (k -> v -> v -> v) -> [(k, v)] -> HashMap k vunordered-containers Data.HashMap.Strict Construct a map from a list of elements. Uses the provided function to merge duplicate entries.
Examples
Given a list of key-value pairs where the keys are of different flavours, e.g:data Key = Div | Sub
and the values need to be combined differently when there are duplicates, depending on the key:combine Div = div combine Sub = (-)
then fromListWithKey can be used as follows:fromListWithKey combine [(Div, 2), (Div, 6), (Sub, 2), (Sub, 3)] = fromList [(Div, 3), (Sub, 1)]
More generally, duplicate entries are accumulated as follows;fromListWith f [(k, a), (k, b), (k, c), (k, d)] = fromList [(k, f k d (f k c (f k b a)))]
toList :: HashMap k v -> [(k, v)]unordered-containers Data.HashMap.Strict Return a list of this map's elements. The list is produced lazily. The order of its elements is unspecified, and it may change from version to version of either this package or of hashable.
fromList :: Hashable a => [a] -> HashSet aunordered-containers Data.HashSet Construct a set from a list of elements.
-
unordered-containers Data.HashSet Return a list of this set's elements. The list is produced lazily. The order of its elements is unspecified, and it may change from version to version of either this package or of hashable.