[Haskell-beginners] Proper use of exit{Success,Failure}
Vale Cofer-Shabica
vale.cofershabica at gmail.com
Tue Jun 9 15:25:43 UTC 2015
Dear all,
I'm writing a command line program which may need to exit early based
on some condition. Because of the pipeline the program is a part of, I
want to be able to control the exit status when it does terminate. I
can successfully use 'error' to indicate failure, but also want to
exit early with success (or any other status). Here's what I've
managed:
>import System.Exit (exitSuccess)
>import Control.Monad (when)
>main = do
... code to reasonably initialize condition, e.g.:
> let condition = True
> when condition (putStrLn "Bailing out.")>>exitSuccess>>(return ())
... program continues
If I remove ">>(return ())" my code will not typecheck because
"exitSuccess :: IO a". But this looks ugly and smells sufficiently
like a kludge that I presume there is a better way to do it.
Any suggestions appreciated,
vale
More information about the Beginners
mailing list