错误处理多个要么值
我有两个either
值,例如:错误处理多个要么值
Either String Config -- error string or config parsed Either String Env -- error string or environment variables detected
而且我想他们的价值观提取到这个纪录:
type App = App { config :: Config, env :: Env }
而失败快,如果有是错误(其中一个值为Left
)。
我可以使用两个case
语句,但我想知道是否已经有一个我可以在此使用的抽象了?
理想情况下,我会在出现错误时记录消息并立即退出程序。
回答:
对于这样的事情,您可以使用Either String
是Applicative
的事实。
假设
mcnf :: Either String Config menv :: Either String Env
你可以写
mapp :: Either String App mapp = App <$> mcnf <*> menv
以上是 错误处理多个要么值 的全部内容, 来源链接: utcz.com/qa/265566.html