[Haskell-cafe] How to generalize executing a series of commands, based on a list?

Peter Schmitz ps.haskell at gmail.com
Thu Nov 18 15:14:57 EST 2010


Thank you very much for the help.
-- Peter



On Thu, Nov 18, 2010 at 4:48 AM, Scott Turner <1haskell at pkturner.org> wrote:

> On 2010-11-17 21:03, Peter Schmitz wrote:
> > I am wondering how to generalize this to do likewise for a
> > series of commands, where the varying args (filenames, in this
> > case) are in a list ('inOutLeafs').
>
> The 'sequence' function is handy for combining a series of actions, such
> as [system cmd1, system cmd2, ...].
>
> > I will also want to accumulate some results; probably just a
> > failure count at this time.
>
> 'sequence' hangs on to the results. That may be what you need. For
> control over accumulating results the good stuff is in Data.Foldable.
>
> > Any advice or pointers to examples would be much appreciated.
> >
> > Thanks in advance,
> > -- Peter
> >
> >
> >> run :: ... -> IO (Int)    -- will return a fail count
> >> run
> >>    -- some args to this function here...
> >>    = do
> >>       -- ... set up: inputLeafs, outputLeafs, etc.
> >>
> >>       -- zip two lists of filenames:
> >>       let inOutLeafs = zip inputLeafs outputLeafs
> >>
> >>       -- the first pair for the first command:
> >>       let (inFile1,outFile1) = head inOutLeafs
> >>
> >>       -- build 1st command using 1st pair of filenames:
> >>       let cmd1 = ...
> >>
> >>       exitCode <- system cmd1
> >>       case (exitCode) of
> >>          ExitSuccess -> do
> >>             putStrLn $ "-- OK."
> >>             return 0
> >>          ExitFailure failCnt -> do
> >>             putStrLn $ "-- Failed: " ++ show failCnt
> >>             return 1
> > _______________________________________________
> > Haskell-Cafe mailing list
> > Haskell-Cafe at haskell.org
> > http://www.haskell.org/mailman/listinfo/haskell-cafe
>
>
-------------- next part --------------
An HTML attachment was scrubbed...
URL: http://www.haskell.org/pipermail/haskell-cafe/attachments/20101118/e6a2238a/attachment.html


More information about the Haskell-Cafe mailing list