【发布时间】:2011-09-11 13:17:19
【问题描述】:
我有两个值,t1 和 t2,类型为 Either String Type。 Left-value 用于错误处理。这些值用于返回 Either String Type 的函数中。
我要做的是检查t1 和t2 是否都是Right-values 并满足p :: Type -> Bool。如果他们这样做,我想返回Right (the type inside t1)。如果t1和t2都是Right-values,但不满足p,我想返回Left someString。如果t1 或t2 之一是Left 值,我只想传递该值。
我怎样才能优雅地做到这一点?我有一种预感,使用 Either 作为 monad 是正确的做法,但我不确定如何去做。
【问题讨论】: