gpt4 book ai didi

haskell - 在 Haskell 中使用 'Either'

转载 作者:行者123 更新时间:2023-12-04 13:12:15 25 4
gpt4 key购买 nike

我有两个值,t1t2 , 类型为 Either String Type . Left -value 用于错误处理。这些值用于返回 Either String Type 的函数中。 .

我想要做的是检查两个 t1t2Right -值并满足p :: Type -> Bool .如果他们这样做,我想返回 Right (the type inside t1) .如果两者都是 t1t2Right -值,但不满足 p , 我要返回 Left someString .如果 t1 之一或 t2Left值(value),我只想传递那个值(value)。

我怎样才能以优雅的方式做到这一点?我有一种预感,使用 Either 作为 monad 是正确的做法,但我不确定如何去做。

最佳答案

为什么是单子(monad)?

test p (Right t1) (Right t2) | p t1 && p t2 = Right t1
| otherwise = Left "nope"
test _ (Left t1) _ = Left t1
test _ _ (Left t2) = Left t2

关于haskell - 在 Haskell 中使用 'Either',我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6290712/

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