| Copyright | (c) Conal Elliott 2012--2019 |
|---|---|
| License | BSD3 |
| Maintainer | conal@conal.net |
| Stability | experimental |
| Safe Haskell | None |
| Language | Haskell2010 |
Data.TotalMap
Description
Finitely represented total maps. Represented by as a partial map and a default value. Has Applicative and Monad instances (unlike Data.Map).
Synopsis
- data TMap k v
- fromPartial :: v -> Map k v -> TMap k v
- empty :: v -> TMap k v
- insert :: Ord k => k -> v -> TMap k v -> TMap k v
- singleton :: Ord k => k -> v -> v -> TMap k v
- (!) :: Ord k => TMap k v -> k -> v
- tabulate :: Eq k => v -> Set k -> (k -> v) -> TMap k v
- trim :: (Ord k, Eq v) => TMap k v -> TMap k v
- intersectionPartialWith :: Ord k => (a -> b -> c) -> TMap k a -> Map k b -> Map k c
- range :: Ord v => TMap k v -> Set v
- mapKeysWith :: (Semiring z, Ord b) => (z -> z -> z) -> (a -> b) -> TMap a z -> TMap b z
Documentation
Total map
Instances
| Ord k => Monad (TMap k) Source # | |
| Functor (TMap k) Source # | |
| Ord k => Applicative (TMap k) Source # | |
| (Show v, Show k) => Show (TMap k v) Source # | |
| (Ord k, Semigroup v) => Semigroup (TMap k v) Source # | |
| (Ord k, Monoid v) => Monoid (TMap k v) Source # | |
| (Ord k, Semiring v) => Semiring (TMap k v) Source # | |
| (Ord k, StarSemiring v) => StarSemiring (TMap k v) Source # | |
| (Ord k, DetectableZero v) => DetectableZero (TMap k v) Source # | |
Defined in Data.TotalMap | |
fromPartial :: v -> Map k v -> TMap k v Source #
Create a total map from a default value and a partial map.
tabulate :: Eq k => v -> Set k -> (k -> v) -> TMap k v Source #
Construct a total map, given a default value, a set of keys, and a
function to sample over that set. You might want to trim the result.
trim :: (Ord k, Eq v) => TMap k v -> TMap k v Source #
Optimize a TMap, weeding out any explicit default values.
A semantic no-op, i.e., (!) . trim == (!).
intersectionPartialWith :: Ord k => (a -> b -> c) -> TMap k a -> Map k b -> Map k c Source #
Intersect a total map with a partial one using an element combinator.