23 Nov
2004
23 Nov
'04
9:17 p.m.
John Goerzen wrote:
main = do xs <- return [ 1, 2, error "throw" ] `catch` \ any -> do putStrLn "caught" return [ 4, 5, 6 ] print xs
When run, I get: Fail: throw
In any case, in the more general case, I don't see a problem with that. I get an exception when I try to use something. That's fine. In an imperative program that solves the same problem the same way, you'd see the exception at the same point.
No, in a traditional (strict) programming language the program would print caught [4,5,6] The exception "throw" would not appear in the output. -- Ben