gpt4 book ai didi

haskell - 和内部Maybe错误处理

转载 作者:行者123 更新时间:2023-12-03 07:45:17 26 4
gpt4 key购买 nike

有Haskell模式可以消除此自定义函数的编写吗?想法是将Maybe的Nothing作为错误处理(作为包装Either的一部分):

eitherMaybeHandle :: String -> Either String (Maybe a) -> Either String a
eitherMaybeHandle err = \case
Left e ->
Left e
Right Nothing ->
Left err
Right (Just a) ->
Right a

最佳答案

首先,您可以使用sequenceEither a (Maybe b)转换为Maybe (Either a b)。然后,您可以将fromMaybe连同您的a类型的值一起应用到结果中,以获得Either a b

import Data.Maybe (fromMaybe)

eitherMaybeHandle :: a -> Either a (Maybe b) -> Either a b
eitherMaybeHandle err = fromMaybe (Left err) . sequence

关于haskell - 和内部Maybe错误处理,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/48530625/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com