Error
类型类有什么用:
class Error a where
noMsg :: a
strMsg :: String -> a
还有另一个名为 MonadError
的类型类,它在单子(monad)计算中有意义。但是Error
用在哪里呢?我还没有在任何地方看到 noMsg
和 strMsg
的用法。
最佳答案
由于历史原因,Monad m
类型类包含 fail::String -> m a
。为了让 Either e
实现这样的方法,我们必须有一种方法将 String
转换为 e
; Error
类型类的发明是为了通过 strMsg
实现这一点。添加 noMsg
带来了额外的便利。
关于haskell - 错误类型类的使用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20923322/