summaryrefslogtreecommitdiff
path: root/src/GF/Data/Assoc.hs
diff options
context:
space:
mode:
authorpeb <unknown>2005-05-09 08:25:56 +0000
committerpeb <unknown>2005-05-09 08:25:56 +0000
commit2b059b811db03a53e8e0f8ec1a655e507851a995 (patch)
tree467ad9a1849bf454b22d5b2a457d09f8247041e6 /src/GF/Data/Assoc.hs
parent01696e4f86fa156d079f2febaf103fbe229ffdb1 (diff)
"Committed_by_peb"
Diffstat (limited to 'src/GF/Data/Assoc.hs')
-rw-r--r--src/GF/Data/Assoc.hs8
1 files changed, 6 insertions, 2 deletions
diff --git a/src/GF/Data/Assoc.hs b/src/GF/Data/Assoc.hs
index 64ec3bac9..f775319ea 100644
--- a/src/GF/Data/Assoc.hs
+++ b/src/GF/Data/Assoc.hs
@@ -5,9 +5,9 @@
-- Stability : Stable
-- Portability : Haskell 98
--
--- > CVS $Date: 2005/04/12 10:49:45 $
+-- > CVS $Date: 2005/05/09 09:28:44 $
-- > CVS $Author: peb $
--- > CVS $Revision: 1.3 $
+-- > CVS $Revision: 1.4 $
--
-- Association lists, or finite maps,
-- including sets as maps with result type @()@.
@@ -25,6 +25,7 @@ module GF.Data.Assoc ( Assoc,
aAssocs,
aElems,
assocMap,
+ assocFilter,
lookupAssoc,
lookupWith,
(?),
@@ -63,6 +64,9 @@ aElems :: Ord a => Assoc a b -> SList a
-- the mapping function can take the key as information
assocMap :: Ord a => (a -> b -> b') -> Assoc a b -> Assoc a b'
+assocFilter :: Ord a => (b -> Bool) -> Assoc a b -> Assoc a b
+assocFilter pred = listAssoc . filter (pred . snd) . aAssocs
+
-- | monadic lookup function,
-- returning failure if the key does not exist
lookupAssoc :: (Ord a, Monad m) => Assoc a b -> a -> m b