projects
/
ghc-hetmet.git
/ commitdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
| commitdiff |
tree
raw
|
patch
|
inline
| side by side (parent:
65277a1
)
Add lengthBag to Bag (using in forthcoming patch)
author
simonpj@microsoft.com
<unknown>
Fri, 4 Dec 2009 15:50:55 +0000
(15:50 +0000)
committer
simonpj@microsoft.com
<unknown>
Fri, 4 Dec 2009 15:50:55 +0000
(15:50 +0000)
compiler/utils/Bag.lhs
patch
|
blob
|
history
diff --git
a/compiler/utils/Bag.lhs
b/compiler/utils/Bag.lhs
index
481dedf
..
ebc44ac
100644
(file)
--- a/
compiler/utils/Bag.lhs
+++ b/
compiler/utils/Bag.lhs
@@
-11,7
+11,7
@@
module Bag (
emptyBag, unitBag, unionBags, unionManyBags,
mapBag,
emptyBag, unitBag, unionBags, unionManyBags,
mapBag,
- elemBag,
+ elemBag, lengthBag,
filterBag, partitionBag, concatBag, foldBag, foldrBag, foldlBag,
isEmptyBag, isSingletonBag, consBag, snocBag, anyBag,
listToBag, bagToList,
filterBag, partitionBag, concatBag, foldBag, foldrBag, foldlBag,
isEmptyBag, isSingletonBag, consBag, snocBag, anyBag,
listToBag, bagToList,
@@
-41,6
+41,12
@@
emptyBag = EmptyBag
unitBag :: a -> Bag a
unitBag = UnitBag
unitBag :: a -> Bag a
unitBag = UnitBag
+lengthBag :: Bag a -> Int
+lengthBag EmptyBag = 0
+lengthBag (UnitBag {}) = 1
+lengthBag (TwoBags b1 b2) = lengthBag b1 + lengthBag b2
+lengthBag (ListBag xs) = length xs
+
elemBag :: Eq a => a -> Bag a -> Bool
elemBag _ EmptyBag = False
elemBag x (UnitBag y) = x == y
elemBag :: Eq a => a -> Bag a -> Bool
elemBag _ EmptyBag = False
elemBag x (UnitBag y) = x == y