仅捕获外部PatternMatchFail异常

时间:2019-05-31 18:54:40

标签: haskell

给出部分函数,​​例如:

foo :: Maybe (Bool, a) -> a
foo = \(Just (b, a)) -> (\True -> a) b

是否有一种方法可以捕获最外层lambda抛出的PatternMatchFail异常而又不捕获lambda主体抛出的PatternMatchFail异常?

 ghci> catchingOuterPatternMatchFailure foo (Just (True, ()))
 Right ()
 ghci> catchingOuterPatternMatchFailure foo (Just (False, ()))
 *** Exception: ...: Non-exhaustive patterns in lambda
 ghci> catchingOuterPatternMatchFailure foo Nothing
 Left "...: Non-exhaustive patterns in lambda"

我认为我需要弱于普通头形式的东西,只检查给定的功能模式是否匹配给定的值,而不是它是否成功完成了

0 个答案:

没有答案