[Haskell-cafe] do you have to use fix with forkio?
Derek Elkins
derek.a.elkins at gmail.com
Sat Mar 7 17:27:17 EST 2009
On Sat, 2009-03-07 at 23:12 +0100, Martijn van Steenbergen wrote:
> Derek Elkins wrote:
> > Both are poorish style.
> >
> > reader <- forkIO $ forever $ do (nr', line) <- readChan; when (nr /= nr') $ putStrLn hdl line
>
> This is fine assuming you always want to re-enter the loop. If you want
> to loop conditionally (which is most often the case), forever isn't
> going to work, unless you use exceptions.
If you are doing something else, use something else. This makes it
clear that you -aren't- going to break out (non-exceptionally), i.e. the
control flow is more obvious in this code than in the other versions.
By your logic 'map' would be bad because not everything is a map, of
course, this is precisely why using map, when applicable, is good.
More information about the Haskell-Cafe
mailing list