mirror of
https://github.com/GrammaticalFramework/gf-core.git
synced 2026-05-18 23:52:51 -06:00
"Committed_by_peb"
This commit is contained in:
@@ -5,24 +5,23 @@
|
||||
-- Stability : Stable
|
||||
-- Portability : Haskell 98
|
||||
--
|
||||
-- > CVS $Date $
|
||||
-- > CVS $Author $
|
||||
-- > CVS $Revision $
|
||||
-- > CVS $Date: 2005/02/18 19:21:15 $
|
||||
-- > CVS $Author: peb $
|
||||
-- > CVS $Revision: 1.5 $
|
||||
--
|
||||
-- (Description of the module)
|
||||
-----------------------------------------------------------------------------
|
||||
|
||||
module Map
|
||||
(
|
||||
module Map (
|
||||
Map,
|
||||
empty,
|
||||
isEmpty,
|
||||
(!), -- lookup operator.
|
||||
(!+), -- lookupMany operator.
|
||||
(|->), -- insert operator.
|
||||
(|->+), -- insertMany operator.
|
||||
(<+>), -- union operator.
|
||||
flatten --
|
||||
(!),
|
||||
(!+),
|
||||
(|->),
|
||||
(|->+),
|
||||
(<+>),
|
||||
flatten
|
||||
) where
|
||||
|
||||
import RedBlack
|
||||
@@ -38,20 +37,25 @@ infixl 4 <+>
|
||||
empty :: Map key el
|
||||
empty = emptyTree
|
||||
|
||||
-- | lookup operator.
|
||||
(!) :: Ord key => Map key el -> key -> Maybe el
|
||||
fm ! e = lookupTree e fm
|
||||
|
||||
-- | lookupMany operator.
|
||||
(!+) :: Ord key => Map key el -> [key] -> [Maybe el]
|
||||
fm !+ [] = []
|
||||
fm !+ (e:es) = (lookupTree e fm): (fm !+ es)
|
||||
|
||||
-- | insert operator.
|
||||
(|->) :: Ord key => (key,el) -> Map key el -> Map key el
|
||||
(x,y) |-> fm = insertTree (x,y) fm
|
||||
|
||||
-- | insertMany operator.
|
||||
(|->+) :: Ord key => [(key,el)] -> Map key el -> Map key el
|
||||
[] |->+ fm = fm
|
||||
((x,y):xs) |->+ fm = xs |->+ (insertTree (x,y) fm)
|
||||
|
||||
-- | union operator.
|
||||
(<+>) :: Ord key => Map key el -> Map key el -> Map key el
|
||||
(<+>) fm1 fm2 = xs |->+ fm2
|
||||
where xs = flatten fm1
|
||||
|
||||
Reference in New Issue
Block a user