Example #1
0
 public static MonadZero <TSource> Where <TSource>(
     this MonadZero <TSource> @this,
     Func <TSource, bool> predicate)
 {
     Require.NotNull(@this, nameof(@this));
     Require.NotNull(predicate, nameof(predicate));
     return(@this.Bind(val => predicate(val) ? MonadZero <TSource> .η(val) : MonadZero <TSource> .Zero));
 }
Example #2
0
 public static MonadZero <TResult> Select <TSource, TResult>(
     this MonadZero <TSource> @this,
     Func <TSource, TResult> selector)
 {
     Require.NotNull(@this, nameof(@this));
     Require.NotNull(selector, nameof(selector));
     return(@this.Bind(val => MonadZero <TResult> .η(selector(val))));
 }