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