| EdisonCore-1.2.1.2: 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 |