Как выйти из main в haskell, заданном условие

У меня есть основная функция, которая выполняет много операций ввода-вывода. Однако в какой-то момент я хочу проверить такую ​​переменную, как not (null shouldBeNull) , выйти из всей программы без продолжения с кодом выхода 1 linux и вывести сообщение об ошибке.

Я пробовал поиграть с ошибкой "..." , например, поместив это в if :

if (not (null shouldBeNull)) error "что-то плохое произошло "else putStrLn" ok "

, но я получаю ошибку синтаксического анализа (возможно, неправильный отступ) :(.

Вот измененный фрагмент.

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."

Как вы могли заметить, я хочу сделать чек, куда я положил [ПРОВЕРИТЬ ЗДЕСЬ] комментарий выше ...

Спасибо за вашу помощь!

6
задан GS - Apologise to Monica 20 November 2011 в 18:36
поделиться