Пример #1
0
 public static TR Else <T, TR>(this ConditionalContinuation <T, TR> continuation, Func <T, TR> returns) =>
 continuation.Result.Match <TR>(Some: identity, None: () => returns(continuation.Value));
Пример #2
0
 public static Task <ConditionalContinuation <T, TR> > Cond <T, TR>(this ConditionalContinuation <T, TR> continuation, Func <T, bool> condition, Func <T, Task <TR> > returns) =>
 continuation.Result.Match
 (
     Some: result => FromResult(new ConditionalContinuation <T, TR>(continuation.Value, result)),
     None: () => Cond <T, TR>(continuation.Value, condition, returns)
 );
Пример #3
0
 public static Task <TR> Else <T, TR>(this ConditionalContinuation <T, TR> continuation, Func <T, Task <TR> > returns) =>
 continuation.Result.Match <Task <TR> >(Some: FromResult, None: async() => await returns(continuation.Value));
Пример #4
0
 public static ConditionalContinuation <T, TR> Cond <T, TR>(this ConditionalContinuation <T, TR> continuation, Func <T, bool> condition, Func <T, TR> returns) =>
 continuation.Result.Match <ConditionalContinuation <T, TR> >
 (
     Some: (result) => new ConditionalContinuation <T, TR>(continuation.Value, result),
     None: () => Cond <T, TR>(continuation.Value, condition, returns)
 );