[Haskell-cafe] operating on a hundred files at once

Jefferson Heard jeff at renci.org
Mon Apr 9 21:24:30 EDT 2007


It is indeed!  Is that to be found in Control.Monad, I take it?

On Tue, 2007-04-10 at 08:50 +1000, Duncan Coutts wrote:
> On Mon, 2007-04-09 at 14:40 -0400, Jefferson Heard wrote:
> > Thanks for the advice.  I'm not so much interested in performance here,
> > as this is just a one-off.  Disk thrashing or not, these files are only
> > a few hundred K apiece, and I can't imagine that the whole computation
> > will take more than a few minutes.  
> > 
> > My question is more about how to deal with the IO monad "pollution" of
> > all the data in a situation where you have N instances of IO [a] at step
> > 1, and you have M computations to perform on those instances, which are
> > all monad-free.
> 
> Perhaps you want one of these functions:
> 
> sequence :: Monad m => [m a] -> m [a]
> 
> sequence_ :: Monad m => [m a] -> m ()
> 
> for example in the case of IO it's:
> 
> sequence :: [IO a] -> IO [a]
> sequence_ :: [IO a] -> IO ()
> 
> ie it takes a pure list of IO actions and sticks them together into one
> IO action, or to put it another way, it performs all the actions in
> sequence.
> 
> 
> Is this what you meant?
> 
> Duncan



More information about the Haskell-Cafe mailing list