
Try this: This line is before the loop sequence_ $ replicate 10 $ do line 1 line 2 ... last line This line is after the loop Now you can use shorthand via loopN n block = sequence_ $ replicate n block So that you can write: This line is before the loop loopN 10 $ do line 1 line 2 ... last line This line is after the loop If you need a loop parameter "mapM/mapM_ block [1...10]" works well. Creighton Hogg wrote:
Hi, so I'm a newbie getting used to Haskell. I'm writing some simple things like genetic algorithms in it for practice, and I keep coming across something that really bugs me: are there any standard libraries that allow you to do imperative style for or while loops using monads to keep track of state?
I know there's things like "until", but honestly that's not quite what I'm looking for.
I just think there should be a simple way to say "execute this block of code 10 times" without having to wrap it up in recursion.
Haskell seems to me to be a very powerful language, and it looks like it should be possible to define control structures such as for loops using monads. _______________________________________________ Haskell-Cafe mailing list Haskell-Cafe@haskell.org http://www.haskell.org/mailman/listinfo/haskell-cafe