From: sof Date: Sun, 5 Oct 1997 21:32:07 +0000 (+0000) Subject: [project @ 1997-10-05 21:32:07 by sof] X-Git-Tag: Approx_2487_patches~1425 X-Git-Url: http://git.megacz.com/?a=commitdiff_plain;h=f972ba286b2e537875f81c38f6a53ab34ba9163a;p=ghc-hetmet.git [project @ 1997-10-05 21:32:07 by sof] Added missing zipWithM_ --- diff --git a/ghc/lib/required/Monad.lhs b/ghc/lib/required/Monad.lhs index 6389b91..2be1dba 100644 --- a/ghc/lib/required/Monad.lhs +++ b/ghc/lib/required/Monad.lhs @@ -18,6 +18,7 @@ module Monad ( join, -- :: (Monad m) => m (m a) -> m a mapAndUnzipM, -- :: (Monad m) => (a -> m (b,c)) -> [a] -> m ([b], [c]) zipWithM, -- :: (Monad m) => (a -> b -> m c) -> [a] -> [b] -> m [c] + zipWithM_, -- :: (Monad m) => (a -> b -> m c) -> [a] -> [b] -> m () foldM, -- :: (Monad m) => (a -> b -> m a) -> a -> [b] -> m a when, -- :: (Monad m) => Bool -> m () -> m () unless, -- :: (Monad m) => Bool -> m () -> m () @@ -86,6 +87,9 @@ mapAndUnzipM f xs = accumulate (map f xs) >>= return . unzip zipWithM :: (Monad m) => (a -> b -> m c) -> [a] -> [b] -> m [c] zipWithM f xs ys = accumulate (zipWith f xs ys) +zipWithM_ :: (Monad m) => (a -> b -> m c) -> [a] -> [b] -> m () +zipWithM_ f xs ys = sequence (zipWith f xs ys) + foldM :: (Monad m) => (a -> b -> m a) -> a -> [b] -> m a foldM f a [] = return a foldM f a (x:xs) = f a x >>= \fax -> foldM f fax xs