11 Dec
2005
11 Dec
'05
11:50 p.m.
G'day. Quoting Joel Reymont <joelr1@gmail.com>:
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