错误处理多个要么值

我有两个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 StringApplicative的事实。

假设

mcnf :: Either String Config 

menv :: Either String Env

你可以写

mapp :: Either String App 

mapp = App <$> mcnf <*> menv

以上是 错误处理多个要么值 的全部内容, 来源链接: utcz.com/qa/265566.html

回到顶部