Safe Haskell | None |
---|---|
Language | Haskell98 |
Strict tries (based on Data.Map.Strict and Agda.Utils.Maybe.Strict).
- data Trie k v
- empty :: Null a => a
- singleton :: [k] -> v -> Trie k v
- insert :: Ord k => [k] -> v -> Trie k v -> Trie k v
- insertWith :: Ord k => (v -> v -> v) -> [k] -> v -> Trie k v -> Trie k v
- union :: Ord k => Trie k v -> Trie k v -> Trie k v
- unionWith :: Ord k => (v -> v -> v) -> Trie k v -> Trie k v -> Trie k v
- adjust :: Ord k => [k] -> (Maybe v -> Maybe v) -> Trie k v -> Trie k v
- delete :: Ord k => [k] -> Trie k v -> Trie k v
- toList :: Ord k => Trie k v -> [([k], v)]
- toAscList :: Ord k => Trie k v -> [([k], v)]
- lookupPath :: Ord k => [k] -> Trie k v -> [v]
Documentation
Finite map from [k]
to v
.
With the strict Maybe
type, Trie
is also strict in v
.
insert :: Ord k => [k] -> v -> Trie k v -> Trie k v Source
Insert. Overwrites existing value if present.
insert = insertWith ( new old -> new)
insertWith :: Ord k => (v -> v -> v) -> [k] -> v -> Trie k v -> Trie k v Source
Insert with function merging new value with old value.
union :: Ord k => Trie k v -> Trie k v -> Trie k v Source
Left biased union.
union = unionWith ( new old -> new)
.
unionWith :: Ord k => (v -> v -> v) -> Trie k v -> Trie k v -> Trie k v Source
Pointwise union with merge function for values.
adjust :: Ord k => [k] -> (Maybe v -> Maybe v) -> Trie k v -> Trie k v Source
Adjust value at key, leave subtree intact.
lookupPath :: Ord k => [k] -> Trie k v -> [v] Source
Collect all values along a given path.