示例#1
0
 public static IEffect <TResult> SelectMany <TSource1, TSource2, TResult>(this IEffect <TSource1> sourceEffect,
                                                                          Func <TSource1, IEffect <TSource2> > monadicFn,
                                                                          Func <TSource1, TSource2, TResult> resultSelector)
 {
     return(sourceEffect.Bind(source => monadicFn(source).Map(x => resultSelector(source, x))));
 }
示例#2
0
 public static IEffect Then(this IEffect effect, IEffect next)
 {
     return(effect.Bind(_ => next).ToUnit());
 }
示例#3
0
 public static IEffect Then <T>(this IEffect <T> effect, Func <T, IEffect> computation)
 {
     return(effect.Bind(computation).ToUnit());
 }
示例#4
0
 public static IEffect <TResult> Then <TResult>(this IEffect effect, IEffect <TResult> next)
 {
     return(effect.Bind(_ => next));
 }
示例#5
0
 public static IEffect <TResult> Then <T, TResult>(this IEffect <T> effect, Func <T, IEffect <TResult> > computation)
 {
     return(effect.Bind(computation));
 }