Guest User

Untitled

a guest
Aug 14th, 2018
82
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 0.45 KB | None | 0 0
  1. import Control.Exception
  2.  
  3. getWord :: IO String
  4. getWord =
  5. putStrLn "Enter something:" >>
  6. getLine >>= \name ->
  7. case name of
  8. "bad" -> ioError $ userError "bad word detected"
  9. _ -> return name
  10.  
  11. getWordWithoutBadWord :: IO String
  12. getWordWithoutBadWord = catch getWord handler
  13. where handler :: IOError -> IO String
  14. handler e = return $ "(filtered) - reason: " ++ show e
  15.  
  16. main :: IO ()
  17. main = getWordWithoutBadWord >>= \name -> putStrLn name
Add Comment
Please, Sign In to add comment