Exemplo n.º 1
0
 public static TreeForest <A> Flatten <A>(this TreeForest <TreeForest <A> > o)
 {
     return(o.SelectMany(z => z));
 }
Exemplo n.º 2
0
 public static Pair <TreeForest <A>, TreeForest <B> > Unzip <A, B>(this TreeForest <Pair <A, B> > p)
 {
     return(Pair <TreeForest <A>, TreeForest <B> > .pair(p.Select(a => a._1.Get), p.Select(a => a._2.Get)));
 }
Exemplo n.º 3
0
 public static TreeForest <B> Apply <A, B>(this TreeForest <Func <A, B> > f, TreeForest <A> o)
 {
     return(f.SelectMany(g => o.Select(p => g(p))));
 }
Exemplo n.º 4
0
 public static TreeForest <C> SelectMany <A, B, C>(this TreeForest <A> k, Func <A, TreeForest <B> > p, Func <A, B, C> f)
 {
     return(SelectMany(k, a => Select(p(a), b => f(a, b))));
 }
Exemplo n.º 5
0
 public static TreeForest <B> SelectMany <A, B>(this TreeForest <A> k, Func <A, TreeForest <B> > f)
 {
     return(k.Forest.Get.SelectMany(t => TreeT(a => f(a).Forest.Get, t)).Forest());
 }
Exemplo n.º 6
0
 public static TreeForest <B> Select <A, B>(this TreeForest <A> k, Func <A, B> f)
 {
     return(k.Forest.Get.Select(q => q.Select(f)).Forest());
 }
Exemplo n.º 7
0
 public static TreeForest <A> Flatten <A>(this TreeForest <TreeForest <A> > o) => o.SelectMany(z => z);