On Thu, 2009-03-05 at 15:36 -0800, Daryoush Mehrtash wrote:
> In this chat server implementation
> http://www.haskell.org/haskellwiki/Implement_a_chat_server
>
> forkIO is used with fix as in:
>
> reader <- forkIO $ fix $ \loop -> do
>
> (nr', line) <- readChan chan'
> when (nr /= nr') $ hPutStrLn hdl line
>
> loop
>
> Do you have to use fix? Or is there a way to write this with a "let"?
You can certainly use let:
reader <- forkIO $ let loop = do
(nr', line) <- readChan chan'
when (nr /= nr') $ hPutStrLn hdl line
loop
in loop
But the version with fix is clearer (at least to people who have fix in
their vocabulary) and arguably better style.
jcc
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe