Esempio n. 1
0
        public ICompositeSet <TB> Bind <TB>(Func <T, ICompositeSet <TB> > f)
        {
            var left  = _Left.Bind(f);
            var right = _Right.Bind(f);

            return(new CompositeSet <TB>(left, right));
        }
Esempio n. 2
0
 public static ICompositeSet <TResult> Select <TSource, TResult>
     (this ICompositeSet <TSource> m
     , Func <TSource, TResult> f
     ) => m.Bind(x =>
 {
     var data    = new CompositeSourceSet <TResult>();
     data.Source = data.Source.Add(f(x));
     return(data);
 });
Esempio n. 3
0
 public static ICompositeSet <TResult> SelectMany <TSource, TICompositeSet, TResult>
     (this ICompositeSet <TSource> m
     , Func <TSource, ICompositeSet <TICompositeSet> > f
     , Func <TSource, TICompositeSet, TResult> g
     ) => m.Bind(x => f(x).Bind(y =>
 {
     var data    = new CompositeSourceSet <TResult>();
     data.Source = data.Source.Add(g(x, y));
     return(data);
 }));
Esempio n. 4
0
 public static ICompositeSet <TResult> SelectMany <TSource, TResult>
     (this ICompositeSet <TSource> m
     , Func <TSource, ICompositeSet <TResult> > f
     ) => m.Bind(f);