【发布时间】:2012-04-01 12:33:41
【问题描述】:
我有一段代码在列表单子中应用了一个函数。函数可能对其参数具有非详尽的模式匹配。因此,当应用该功能时,我可能会收到"Non-exhaustive pattern matching" 错误。我想把这个错误变成一个单子失败(在这种情况下,一个空列表)。换句话说,我希望获得与 Some Pattern Here <- some value 在 do 块内失败时发生的情况类似的行为。
问题:有没有一种高效的方法来保证函数应用程序的安全?所谓高效,我的意思是类似于使应用的函数彻底匹配并显式失败。
【问题讨论】:
-
问题不清楚。既然您在 list monad 中,为什么不只是在 do-construct 中进行模式匹配,或者在其他情况下使用显式 case 构造。最好贴个示例代码。
标签: exception haskell exception-handling functional-programming monads