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:
04fd714
)
Add Bag.anyBag (analogous to List.any)
author
simonpj@microsoft.com
<unknown>
Fri, 3 Feb 2006 17:46:27 +0000
(17:46 +0000)
committer
simonpj@microsoft.com
<unknown>
Fri, 3 Feb 2006 17:46:27 +0000
(17:46 +0000)
ghc/compiler/utils/Bag.lhs
patch
|
blob
|
history
diff --git
a/ghc/compiler/utils/Bag.lhs
b/ghc/compiler/utils/Bag.lhs
index
4ee8b0f
..
b107f84
100644
(file)
--- a/
ghc/compiler/utils/Bag.lhs
+++ b/
ghc/compiler/utils/Bag.lhs
@@
-11,7
+11,7
@@
module Bag (
mapBag,
elemBag,
filterBag, partitionBag, concatBag, foldBag, foldrBag, foldlBag,
mapBag,
elemBag,
filterBag, partitionBag, concatBag, foldBag, foldrBag, foldlBag,
- isEmptyBag, isSingletonBag, consBag, snocBag,
+ isEmptyBag, isSingletonBag, consBag, snocBag, anyBag,
listToBag, bagToList,
mapBagM, mapAndUnzipBagM
) where
listToBag, bagToList,
mapBagM, mapAndUnzipBagM
) where
@@
-75,6
+75,12
@@
filterBag pred (TwoBags b1 b2) = sat1 `unionBags` sat2
sat2 = filterBag pred b2
filterBag pred (ListBag vs) = listToBag (filter pred vs)
sat2 = filterBag pred b2
filterBag pred (ListBag vs) = listToBag (filter pred vs)
+anyBag :: (a -> Bool) -> Bag a -> Bool
+anyBag p EmptyBag = False
+anyBag p (UnitBag v) = p v
+anyBag p (TwoBags b1 b2) = anyBag p b1 || anyBag p b2
+anyBag p (ListBag xs) = any p xs
+
concatBag :: Bag (Bag a) -> Bag a
concatBag EmptyBag = EmptyBag
concatBag (UnitBag b) = b
concatBag :: Bag (Bag a) -> Bag a
concatBag EmptyBag = EmptyBag
concatBag (UnitBag b) = b