 | EdisonCore-1.2.1.2: A library of efficent, purely-functional data structures (Core Implementations) | Source code | Contents | Index |
|
| Data.Edison.Assoc.TernaryTrie | | Portability | GHC, Hugs (MPTC and FD) | | Stability | stable | | Maintainer | robdockins AT fastmail DOT fm |
|
|
|
|
|
| Description |
| Finite maps implemented as ternary search tries
|
|
| Synopsis |
|
| data FM k a | | | empty :: Ord k => FM k a | | | singleton :: Ord k => [k] -> a -> FM k a | | | fromSeq :: (Ord k, Sequence seq) => seq ([k], a) -> FM k a | | | insert :: Ord k => [k] -> a -> FM k a -> FM k a | | | insertSeq :: (Ord k, Sequence seq) => seq ([k], a) -> FM k a -> FM k a | | | union :: Ord k => FM k a -> FM k a -> FM k a | | | unionSeq :: (Ord k, Sequence seq) => seq (FM k a) -> FM k a | | | delete :: Ord k => [k] -> FM k a -> FM k a | | | deleteAll :: Ord k => [k] -> FM k a -> FM k a | | | deleteSeq :: (Ord k, Sequence seq) => seq [k] -> FM k a -> FM k a | | | null :: Ord k => FM k a -> Bool | | | size :: Ord k => FM k a -> Int | | | member :: Ord k => [k] -> FM k a -> Bool | | | count :: Ord k => [k] -> FM k a -> Int | | | lookup :: Ord k => [k] -> FM k a -> a | | | lookupM :: (Ord k, Monad rm) => [k] -> FM k a -> rm a | | | lookupAll :: (Ord k, Sequence seq) => [k] -> FM k a -> seq a | | | lookupAndDelete :: Ord k => [k] -> FM k a -> (a, FM k a) | | | lookupAndDeleteM :: (Ord k, Monad rm) => [k] -> FM k a -> rm (a, FM k a) | | | lookupAndDeleteAll :: (Ord k, Sequence seq) => [k] -> FM k a -> (seq a, FM k a) | | | lookupWithDefault :: Ord k => a -> [k] -> FM k a -> a | | | adjust :: Ord k => (a -> a) -> [k] -> FM k a -> FM k a | | | adjustAll :: Ord k => (a -> a) -> [k] -> FM k a -> FM k a | | | adjustOrInsert :: Ord k => (a -> a) -> a -> [k] -> FM k a -> FM k a | | | adjustAllOrInsert :: Ord k => (a -> a) -> a -> [k] -> FM k a -> FM k a | | | adjustOrDelete :: Ord k => (a -> Maybe a) -> [k] -> FM k a -> FM k a | | | adjustOrDeleteAll :: Ord k => (a -> Maybe a) -> [k] -> FM k a -> FM k a | | | strict :: FM k a -> FM k a | | | strictWith :: (a -> b) -> FM k a -> FM k a | | | map :: Ord k => (a -> b) -> FM k a -> FM k b | | | fold :: Ord k => (a -> b -> b) -> b -> FM k a -> b | | | fold' :: Ord k => (a -> b -> b) -> b -> FM k a -> b | | | fold1 :: Ord k => (a -> a -> a) -> FM k a -> a | | | fold1' :: Ord k => (a -> a -> a) -> FM k a -> a | | | filter :: Ord k => (a -> Bool) -> FM k a -> FM k a | | | partition :: Ord k => (a -> Bool) -> FM k a -> (FM k a, FM k a) | | | elements :: (Ord k, Sequence seq) => FM k a -> seq a | | | structuralInvariant :: Ord k => FM k a -> Bool | | | toSeq :: (Ord k, Sequence seq) => FM k a -> seq ([k], a) | | | keys :: (Ord k, Sequence seq) => FM k a -> seq [k] | | | mapWithKey :: Ord k => ([k] -> a -> b) -> FM k a -> FM k b | | | foldWithKey :: Ord k => ([k] -> a -> b -> b) -> b -> FM k a -> b | | | foldWithKey' :: Ord k => ([k] -> a -> b -> b) -> b -> FM k a -> b | | | filterWithKey :: Ord k => ([k] -> a -> Bool) -> FM k a -> FM k a | | | partitionWithKey :: Ord k => ([k] -> a -> Bool) -> FM k a -> (FM k a, FM k a) | | | fromSeqWith :: (Ord k, Sequence seq) => (a -> a -> a) -> seq ([k], a) -> FM k a | | | fromSeqWithKey :: (Ord k, Sequence seq) => ([k] -> a -> a -> a) -> seq ([k], a) -> FM k a | | | insertWith :: Ord k => (a -> a -> a) -> [k] -> a -> FM k a -> FM k a | | | insertWithKey :: Ord k => ([k] -> a -> a -> a) -> [k] -> a -> FM k a -> FM k a | | | insertSeqWith :: (Ord k, Sequence seq) => (a -> a -> a) -> seq ([k], a) -> FM k a -> FM k a | | | insertSeqWithKey :: (Ord k, Sequence seq) => ([k] -> a -> a -> a) -> seq ([k], a) -> FM k a -> FM k a | | | unionl :: Ord k => FM k a -> FM k a -> FM k a | | | unionr :: Ord k => FM k a -> FM k a -> FM k a | | | unionWith :: Ord k => (a -> a -> a) -> FM k a -> FM k a -> FM k a | | | unionSeqWith :: (Ord k, Sequence seq) => (a -> a -> a) -> seq (FM k a) -> FM k a | | | intersectionWith :: Ord k => (a -> b -> c) -> FM k a -> FM k b -> FM k c | | | difference :: Ord k => FM k a -> FM k b -> FM k a | | | properSubset :: Ord k => FM k a -> FM k b -> Bool | | | subset :: Ord k => FM k a -> FM k b -> Bool | | | properSubmapBy :: Ord k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool | | | submapBy :: Ord k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool | | | sameMapBy :: Ord k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool | | | properSubmap :: (Ord k, Eq a) => FM k a -> FM k a -> Bool | | | submap :: (Ord k, Eq a) => FM k a -> FM k a -> Bool | | | sameMap :: (Ord k, Eq a) => FM k a -> FM k a -> Bool | | | unionWithKey :: Ord k => ([k] -> a -> a -> a) -> FM k a -> FM k a -> FM k a | | | unionSeqWithKey :: (Ord k, Sequence seq) => ([k] -> a -> a -> a) -> seq (FM k a) -> FM k a | | | intersectionWithKey :: Ord k => ([k] -> a -> b -> c) -> FM k a -> FM k b -> FM k c | | | minView :: Monad m => FM k a -> m (a, FM k a) | | | minElem :: FM t1 t -> t | | | deleteMin :: Ord k => FM k a -> FM k a | | | unsafeInsertMin :: Ord k => [k] -> a -> FM k a -> FM k a | | | maxView :: Monad m => FM k a -> m (a, FM k a) | | | maxElem :: FM k a -> a | | | deleteMax :: Ord k => FM k a -> FM k a | | | unsafeInsertMax :: Ord k => [k] -> a -> FM k a -> FM k a | | | foldr :: Ord k => (a -> b -> b) -> b -> FM k a -> b | | | foldr' :: Ord k => (a -> b -> b) -> b -> FM k a -> b | | | foldr1 :: Ord k => (a -> a -> a) -> FM k a -> a | | | foldr1' :: Ord k => (a -> a -> a) -> FM k a -> a | | | foldl :: (a -> b -> a) -> a -> FM t b -> a | | | foldl' :: (a -> b -> a) -> a -> FM t b -> a | | | foldl1 :: (b -> b -> b) -> FM k b -> b | | | foldl1' :: (b -> b -> b) -> FM k b -> b | | | unsafeFromOrdSeq :: (Ord k, Sequence seq) => seq ([k], a) -> FM k a | | | unsafeAppend :: Ord k => FM k a -> FM k a -> FM k a | | | filterLT :: Ord k => [k] -> FM k a -> FM k a | | | filterLE :: Ord k => [k] -> FM k a -> FM k a | | | filterGT :: Ord k => [k] -> FM k a -> FM k a | | | filterGE :: Ord k => [k] -> FM k a -> FM k a | | | partitionLT_GE :: Ord k => [k] -> FM k a -> (FM k a, FM k a) | | | partitionLE_GT :: Ord k => [k] -> FM k a -> (FM k a, FM k a) | | | partitionLT_GT :: Ord k => [k] -> FM k a -> (FM k a, FM k a) | | | minViewWithKey :: Monad m => FM k a -> m (([k], a), FM k a) | | | minElemWithKey :: FM k a -> ([k], a) | | | maxViewWithKey :: Monad m => FM k a -> m (([k], a), FM k a) | | | maxElemWithKey :: FM k a -> ([k], a) | | | foldrWithKey :: Ord k => ([k] -> a -> b -> b) -> b -> FM k a -> b | | | foldrWithKey' :: Ord k => ([k] -> a -> b -> b) -> b -> FM k a -> b | | | foldlWithKey :: Ord k => (b -> [k] -> a -> b) -> b -> FM k a -> b | | | foldlWithKey' :: Ord k => (b -> [k] -> a -> b) -> b -> FM k a -> b | | | toOrdSeq :: (Ord k, Sequence seq) => FM k a -> seq ([k], a) | | | mergeVFM :: Ord k => (Maybe a -> Maybe b -> Maybe c) -> FM k a -> FM k b -> FM k c | | | mergeKVFM :: Ord k => ([k] -> Maybe a -> Maybe b -> Maybe c) -> FM k a -> FM k b -> FM k c | | | moduleName :: String |
|
|
|
| Type of ternary search tries
|
|
|
Instances | |
|
|
| AssocX operations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| lookupWithDefault :: Ord k => a -> [k] -> FM k a -> a | Source |
|
|
|
|
|
|
| adjustOrInsert :: Ord k => (a -> a) -> a -> [k] -> FM k a -> FM k a | Source |
|
|
| adjustAllOrInsert :: Ord k => (a -> a) -> a -> [k] -> FM k a -> FM k a | Source |
|
|
|
|
|
|
|
|
|
|
|
|
| fold :: Ord k => (a -> b -> b) -> b -> FM k a -> b | Source |
|
|
| fold' :: Ord k => (a -> b -> b) -> b -> FM k a -> b | Source |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Assoc operations
|
|
|
|
|
|
|
|
| foldWithKey :: Ord k => ([k] -> a -> b -> b) -> b -> FM k a -> b | Source |
|
|
| foldWithKey' :: Ord k => ([k] -> a -> b -> b) -> b -> FM k a -> b | Source |
|
|
|
|
|
|
| FiniteMapX operations
|
|
|
|
| fromSeqWithKey :: (Ord k, Sequence seq) => ([k] -> a -> a -> a) -> seq ([k], a) -> FM k a | Source |
|
|
| insertWith :: Ord k => (a -> a -> a) -> [k] -> a -> FM k a -> FM k a | Source |
|
|
| insertWithKey :: Ord k => ([k] -> a -> a -> a) -> [k] -> a -> FM k a -> FM k a | Source |
|
|
|
|
| insertSeqWithKey :: (Ord k, Sequence seq) => ([k] -> a -> a -> a) -> seq ([k], a) -> FM k a -> FM k a | Source |
|
|
|
|
|
|
|
|
|
|
| intersectionWith :: Ord k => (a -> b -> c) -> FM k a -> FM k b -> FM k c | Source |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| FiniteMap operations
|
|
| unionWithKey :: Ord k => ([k] -> a -> a -> a) -> FM k a -> FM k a -> FM k a | Source |
|
|
|
|
| intersectionWithKey :: Ord k => ([k] -> a -> b -> c) -> FM k a -> FM k b -> FM k c | Source |
|
|
| OrdAssocX operations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| foldr :: Ord k => (a -> b -> b) -> b -> FM k a -> b | Source |
|
|
| foldr' :: Ord k => (a -> b -> b) -> b -> FM k a -> b | Source |
|
|
|
|
|
|
| foldl :: (a -> b -> a) -> a -> FM t b -> a | Source |
|
|
| foldl' :: (a -> b -> a) -> a -> FM t b -> a | Source |
|
|
| foldl1 :: (b -> b -> b) -> FM k b -> b | Source |
|
|
| foldl1' :: (b -> b -> b) -> FM k b -> b | Source |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| OrdAssoc operations
|
|
|
|
| minElemWithKey :: FM k a -> ([k], a) | Source |
|
|
|
|
| maxElemWithKey :: FM k a -> ([k], a) | Source |
|
|
| foldrWithKey :: Ord k => ([k] -> a -> b -> b) -> b -> FM k a -> b | Source |
|
|
| foldrWithKey' :: Ord k => ([k] -> a -> b -> b) -> b -> FM k a -> b | Source |
|
|
| foldlWithKey :: Ord k => (b -> [k] -> a -> b) -> b -> FM k a -> b | Source |
|
|
| foldlWithKey' :: Ord k => (b -> [k] -> a -> b) -> b -> FM k a -> b | Source |
|
|
|
|
| Other supported operations
|
|
|
|
|
|
| Documentation
|
|
|
|
| Produced by Haddock version 2.3.0 |