我想捕捉异常,因为与行动([1,2] !! 3)。我不能。Haskell。非IO异常处理
我试图
let a = [1,2]
handle (\(e :: SomeException) -> print "err" >> return 1) (return $ a !! 3)
Control.Exception.catch (return $ a !! 3) (\(e::SomeException) -> print "err" >> return 1)
两个我得到例外:前奏曲(!!):指数太大 *
这可能吗?可能我会用Maybe方法。
感谢您的帮助。
“评估'return'还必须评估列表索引“ - 这是考虑严格性的好语言。 +1 – luqui 2011-03-17 23:22:45
有时我会忘记哈斯克尔的懒惰 – Anton 2011-03-18 05:22:52