haskell - 概括没什么

标签 haskell error-handling typeclass option-type

假设我们想要使用类似于 Maybe 的容器来处理可能失败的计算。如果我要为我想要做的事情指定一个类型类,它看起来像这样:

class Alternative f => Nullable f where
  isEmpty :: f a -> Bool

这样,isEmpty x == True 当且仅当 x = 空

是否有一些现有的类型类可供我用于此功能,或者我应该只使用上面的类?

编辑:更多上下文

我正在尝试实现逻辑编程的匹配,并且我希望能够有一个“非模式”,即“当且仅当该程序失败时才成功,然后执行___”。

最佳答案

也许你可以使用Foldable以这种方式。 Maybe , [] , Either , ErrorT , ExceptT都是Foldable 。您可以对 toList 的结果进行模式匹配.

如果您想对成功执行的结果执行某些操作,而在执行失败时不执行任何操作,则可以使用 forM_直接。

或者,您可以使用 MonoidNull 类型类来自 monoid-subclasses ,提供 null谓词。

关于haskell - 概括没什么,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28778986/

相关文章:

scala - Scala 3 中的类型模式匹配和推理错误

haskell - 如何根据运行时值创建有界实例?

Haskell 平台与自制软件

haskell - 无法将类型 `[]' 与 `IO' 匹配——Haskell

haskell - 如何使用 JavaScript 将语句链接到一个 block 中

ruby-on-rails-3 - 获取现有的Rails错误类的列表以供重用/继承

haskell - 为无限 Stream 派生 Functor

drupal - 注意 Drupal 中的 : unserialize() [function. 反序列化]

python - 使用 Tkinter 的“pip install Module”程序

haskell - 从所有参数构建异构列表的构造函数