首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >我应该使用单板机还是ErrorT单板转换器?

我应该使用单板机还是ErrorT单板转换器?
EN

Stack Overflow用户
提问于 2014-10-14 09:31:04
回答 1查看 546关注 0票数 3

我读过这个问题。以下是被接受的答案的引用:

这个实例已经添加到Base4.3.x.x中,这是ghc 7附带的。同时,您可以直接使用Either实例,或者,如果您使用Either来表示可能失败的东西,则应该使用ErrorT monad转换器。

我想用Either来做这样的事情:

代码语言:javascript
复制
> (Left "bad thing happened") >>= \x -> Right (x ++ " ...")
Left "bad thing happened"

因此,如果计算的一部分失败,则返回其Left

实际问题是:为什么我应该使用ErrorT单台转换器而不是Either单机?我是Haskell的新手,我有点害怕单台变压器,尤其是当我已经在里面写代码的时候。

EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-10-14 10:53:49

如果适合您的情况,我建议使用Either。如果您想在计算过程中执行一些IO,例如:

代码语言:javascript
复制
x <- mightReturnLeft
y <- liftIO someIOAction
useXandY x y

在这种情况下,Either是不够的,但是ErrorT可以工作。

另外,我建议使用ExceptT而不是ErrorTErrorT依赖于Error类,这使得使用起来更加困难。

票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/26357269

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档