Hi,
I've often got the same pattern with nested Maybes but inside the IO
monad (sure this could be every other monad too). Assuming that I've got
functions:
getInput :: IO (Maybe Input)
processInput :: Input -> IO (Maybe Result)
printError :: IO ()
printResult :: Result -> IO ()
I observed me writing something like
main :: IO ()
main = do
minput <- getInput
case minput of
Nothing -> printError
Just input -> do
mresult <- processInput input
case mresult of
Nothing -> printError
Just result -> printResult result
several times. But to my mind this looks very imperative and I hope it
can be done more functional. If there is any way, please let me know.
Regards,
Martin.
_______________________________________________
Haskell-Cafe mailing list
[email protected]
http://www.haskell.org/mailman/listinfo/haskell-cafe