【发布时间】:2020-08-21 00:48:00
【问题描述】:
我有两个函数返回Either<Error,?>,第二个函数依赖于第一个。
Either<Error, bool> either1 = ReturnEither1(...);
Either<Error, int> either2 = either1.Bind(ReturnEither2);
现在,我有第三个函数,它同时依赖于either1 和either2,它的left 类型也是Error。我该如何执行以下操作?
Either<Error, MyType> either3 = [either1, either2].BindAll(...);
所以我希望either3 绑定到either1 和either2 的右边。
【问题讨论】:
-
Either长什么样子?也许你可以使用自引用通用约束 -
我不懂 csharp 语法,但你通常会嵌套绑定调用
either1.Bind((x) => either2.Bind((y) => ReturnEither3(x, y))。 -
@bob,就我而言,它是
bind和map的组合。谢谢!您会将其转换为答案吗?
标签: c# functional-programming language-ext