
11 Dec
2005
11 Dec
'05
6:50 p.m.
G'day.
Quoting Joel Reymont
writeLoop :: (Event a -> IO ()) -> Handle -> (SSL, BIO, BIO) -> IO () writeLoop post h ssl = do handle (\e -> post $ NetworkError e) $ do cmd <- read h ssl post $! Cmd $! cmd writeLoop post h ssl
Good, but even better is this: writeLoop :: (Event a -> IO ()) -> Handle -> (SSL, BIO, BIO) -> IO () writeLoop post h ssl = loop where loop = do handle (\e -> post $ NetworkError e) $ do cmd <- read h ssl post $! Cmd $! cmd loop Avoiding parameter passing can make your code a lot easier to read. Cheers, Andrew Bromage