Tengo una función principal que hace mucho IO. En un punto, sin embargo, quiero verificar que una variable como not (null shouldBeNull)
salga de todo el programa, sin continuar, con un código de salida de Linux 1 y genere un mensaje de error.Cómo salir de main en haskell con una condición
He intentado jugar con error "..."
como poner que en un if
:.
if (not (null shouldBeNull)) error "something bad happened" else putStrLn "ok"
pero consigo un parse error (possibly incorrect indentation)
:(
He aquí un fragmento alterado
main :: IO ExitCode
main = do
--Get the file name using program argument
args <- getArgs
file <- readFile (args !! 0)
putStrLn("\n")
-- ... (some other io)
-- [DO A CHECK HERE], exit according to check..
-- ... (even more io)
echotry <- system "echo success"
rmtry <- system "rm -f test.txt"
system "echo done."
.
Como habrás notado, quiero hacer el cheque donde puse [DO A CHECK HERE]
comentario anterior ...
Gracias por su ayuda!
O, para no imprimir un poco importante "ok", '' Control.Monad' importación y cuando badThingHappened exitFailure'. –