From f972ba286b2e537875f81c38f6a53ab34ba9163a Mon Sep 17 00:00:00 2001 From: sof Date: Sun, 5 Oct 1997 21:32:07 +0000 Subject: [PATCH] [project @ 1997-10-05 21:32:07 by sof] Added missing zipWithM_ --- ghc/lib/required/Monad.lhs | 4 ++++ 1 file changed, 4 insertions(+) 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 -- 1.7.10.4