[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