 | EdisonCore-1.2.1.1: A library of efficent, purely-functional data structures (Core Implementations) | Source code | Contents | Index |
|
| Data.Edison.Assoc.AssocList | | Portability | GHC, Hugs (MPTC and FD) | | Stability | stable | | Maintainer | robdockins AT fastmail DOT fm |
|
|
|
|
|
| Description |
This module implements finite maps as simple association lists.
Duplicates are removed conceptually, but not physically. The first
occurrence of a given key is the one that is considered to be in the map.
The list type is mildly customized to prevent boxing the pairs.
|
|
| Synopsis |
|
| data FM k a | | | empty :: Eq k => FM k a | | | singleton :: Eq k => k -> a -> FM k a | | | fromSeq :: (Eq k, Sequence seq) => seq (k, a) -> FM k a | | | insert :: Eq k => k -> a -> FM k a -> FM k a | | | insertSeq :: (Eq k, Sequence seq) => seq (k, a) -> FM k a -> FM k a | | | union :: Eq k => FM k a -> FM k a -> FM k a | | | unionSeq :: (Eq k, Sequence seq) => seq (FM k a) -> FM k a | | | delete :: Eq k => k -> FM k a -> FM k a | | | deleteAll :: Eq k => k -> FM k a -> FM k a | | | deleteSeq :: (Eq k, Sequence seq) => seq k -> FM k a -> FM k a | | | null :: Eq k => FM k a -> Bool | | | size :: Eq k => FM k a -> Int | | | member :: Eq k => k -> FM k a -> Bool | | | count :: Eq k => k -> FM k a -> Int | | | lookup :: Eq k => k -> FM k a -> a | | | lookupM :: (Eq k, Monad rm) => k -> FM k a -> rm a | | | lookupAll :: (Eq k, Sequence seq) => k -> FM k a -> seq a | | | lookupAndDelete :: Eq k => k -> FM k a -> (a, FM k a) | | | lookupAndDeleteM :: (Eq k, Monad rm) => k -> FM k a -> rm (a, FM k a) | | | lookupAndDeleteAll :: (Eq k, Sequence seq) => k -> FM k a -> (seq a, FM k a) | | | lookupWithDefault :: Eq k => a -> k -> FM k a -> a | | | adjust :: Eq k => (a -> a) -> k -> FM k a -> FM k a | | | adjustAll :: Eq k => (a -> a) -> k -> FM k a -> FM k a | | | adjustOrInsert :: Eq k => (a -> a) -> a -> k -> FM k a -> FM k a | | | adjustAllOrInsert :: Eq k => (a -> a) -> a -> k -> FM k a -> FM k a | | | adjustOrDelete :: Eq k => (a -> Maybe a) -> k -> FM k a -> FM k a | | | adjustOrDeleteAll :: Eq 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 :: Eq k => (a -> b) -> FM k a -> FM k b | | | fold :: Eq k => (a -> b -> b) -> b -> FM k a -> b | | | fold' :: Eq k => (a -> b -> b) -> b -> FM k a -> b | | | fold1 :: Eq k => (a -> a -> a) -> FM k a -> a | | | fold1' :: Eq k => (a -> a -> a) -> FM k a -> a | | | filter :: Eq k => (a -> Bool) -> FM k a -> FM k a | | | partition :: Eq k => (a -> Bool) -> FM k a -> (FM k a, FM k a) | | | elements :: (Eq k, Sequence seq) => FM k a -> seq a | | | structuralInvariant :: Eq k => FM k a -> Bool | | | minView :: (Ord k, Monad m) => FM k a -> m (a, FM k a) | | | minElem :: Ord k => FM k a -> a | | | deleteMin :: Ord k => FM k a -> FM k a | | | unsafeInsertMin :: Ord k => k -> a -> FM k a -> FM k a | | | maxView :: (Ord k, Monad m) => FM k a -> m (a, FM k a) | | | maxElem :: Ord k => 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 | | | foldl :: Ord k => (b -> a -> b) -> b -> FM k a -> b | | | foldl' :: Ord k => (b -> a -> 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 | | | foldl1 :: Ord k => (a -> a -> a) -> FM k a -> a | | | foldl1' :: Ord k => (a -> a -> a) -> FM k a -> a | | | 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) | | | toSeq :: (Eq k, Sequence seq) => FM k a -> seq (k, a) | | | keys :: (Eq k, Sequence seq) => FM k a -> seq k | | | mapWithKey :: Eq k => (k -> a -> b) -> FM k a -> FM k b | | | foldWithKey :: Eq k => (k -> a -> b -> b) -> b -> FM k a -> b | | | foldWithKey' :: Eq k => (k -> a -> b -> b) -> b -> FM k a -> b | | | filterWithKey :: Eq k => (k -> a -> Bool) -> FM k a -> FM k a | | | partitionWithKey :: Eq k => (k -> a -> Bool) -> FM k a -> (FM k a, FM k a) | | | minViewWithKey :: (Ord k, Monad m) => FM k a -> m ((k, a), FM k a) | | | minElemWithKey :: Ord k => FM k a -> (k, a) | | | maxViewWithKey :: (Ord k, Monad m) => FM k a -> m ((k, a), FM k a) | | | maxElemWithKey :: Ord k => 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) | | | fromSeqWith :: (Eq k, Sequence seq) => (a -> a -> a) -> seq (k, a) -> FM k a | | | fromSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (k, a) -> FM k a | | | insertWith :: Eq k => (a -> a -> a) -> k -> a -> FM k a -> FM k a | | | insertWithKey :: Eq k => (k -> a -> a -> a) -> k -> a -> FM k a -> FM k a | | | insertSeqWith :: (Eq k, Sequence seq) => (a -> a -> a) -> seq (k, a) -> FM k a -> FM k a | | | insertSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (k, a) -> FM k a -> FM k a | | | unionl :: Eq k => FM k a -> FM k a -> FM k a | | | unionr :: Eq k => FM k a -> FM k a -> FM k a | | | unionWith :: Eq k => (a -> a -> a) -> FM k a -> FM k a -> FM k a | | | unionSeqWith :: (Eq k, Sequence seq) => (a -> a -> a) -> seq (FM k a) -> FM k a | | | intersectionWith :: Eq k => (a -> b -> c) -> FM k a -> FM k b -> FM k c | | | difference :: Eq k => FM k a -> FM k b -> FM k a | | | properSubset :: Eq k => FM k a -> FM k b -> Bool | | | subset :: Eq k => FM k a -> FM k b -> Bool | | | properSubmapBy :: Eq k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool | | | submapBy :: Eq k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool | | | sameMapBy :: Eq k => (a -> a -> Bool) -> FM k a -> FM k a -> Bool | | | properSubmap :: (Eq k, Eq a) => FM k a -> FM k a -> Bool | | | submap :: (Eq k, Eq a) => FM k a -> FM k a -> Bool | | | sameMap :: (Eq k, Eq a) => FM k a -> FM k a -> Bool | | | unionWithKey :: Eq k => (k -> a -> a -> a) -> FM k a -> FM k a -> FM k a | | | unionSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (FM k a) -> FM k a | | | intersectionWithKey :: Eq k => (k -> a -> b -> c) -> FM k a -> FM k b -> FM k c | | | moduleName :: String |
|
|
|
| Type of simple association lists
|
|
|
Instances | |
|
|
| AssocX operations
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| lookupWithDefault :: Eq k => a -> k -> FM k a -> a | Source |
|
|
|
|
| adjustAll :: Eq k => (a -> a) -> k -> FM k a -> FM k a | Source |
|
|
| adjustOrInsert :: Eq k => (a -> a) -> a -> k -> FM k a -> FM k a | Source |
|
|
| adjustAllOrInsert :: Eq k => (a -> a) -> a -> k -> FM k a -> FM k a | Source |
|
|
|
|
|
|
|
|
|
|
|
|
| fold :: Eq k => (a -> b -> b) -> b -> FM k a -> b | Source |
|
|
| fold' :: Eq k => (a -> b -> b) -> b -> FM k a -> b | Source |
|
|
| fold1 :: Eq k => (a -> a -> a) -> FM k a -> a | Source |
|
|
| fold1' :: Eq k => (a -> a -> a) -> FM k a -> a | 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 :: Ord k => (b -> a -> b) -> b -> FM k a -> b | Source |
|
|
| foldl' :: Ord k => (b -> a -> b) -> b -> FM k a -> b | Source |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| Assoc operations
|
|
|
|
|
|
| mapWithKey :: Eq k => (k -> a -> b) -> FM k a -> FM k b | Source |
|
|
| foldWithKey :: Eq k => (k -> a -> b -> b) -> b -> FM k a -> b | Source |
|
|
| foldWithKey' :: Eq k => (k -> a -> b -> b) -> b -> FM k a -> b | Source |
|
|
|
|
|
|
| OrdAssoc operations
|
|
|
|
|
|
|
|
|
|
| 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 |
|
|
|
|
| FiniteMapX operations
|
|
|
|
| fromSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (k, a) -> FM k a | Source |
|
|
| insertWith :: Eq k => (a -> a -> a) -> k -> a -> FM k a -> FM k a | Source |
|
|
| insertWithKey :: Eq k => (k -> a -> a -> a) -> k -> a -> FM k a -> FM k a | Source |
|
|
|
|
| insertSeqWithKey :: (Eq k, Sequence seq) => (k -> a -> a -> a) -> seq (k, a) -> FM k a -> FM k a | Source |
|
|
|
|
|
|
| unionWith :: Eq k => (a -> a -> a) -> FM k a -> FM k a -> FM k a | Source |
|
|
|
|
| intersectionWith :: Eq k => (a -> b -> c) -> FM k a -> FM k b -> FM k c | Source |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| FiniteMap operations
|
|
| unionWithKey :: Eq k => (k -> a -> a -> a) -> FM k a -> FM k a -> FM k a | Source |
|
|
|
|
| intersectionWithKey :: Eq k => (k -> a -> b -> c) -> FM k a -> FM k b -> FM k c | Source |
|
|
| Documentation
|
|
|
|
| Produced by Haddock version 2.3.0 |