Exemplo n.º 1
0
        public IFunc <IFunc <T, MyEnumerable <U> >, MyEnumerable <U> > Bind <U>(MyEnumerable <T> val)
        {
            return(new Function <IFunc <T, MyEnumerable <U> >, MyEnumerable <U> >(_f =>
            {
                List <U> list = new List <U>();
                foreach (T t in val)
                {
                    MyEnumerable <U> _u = _f.Evaluate(t);
                    foreach (U u in _u)
                    {
                        list.Add(u);
                    }
                }

                return new MyEnumerable <U>(list);
            }));
        }
Exemplo n.º 2
0
        IFunc <MyEnumerable <T>, MyEnumerable <U> > Lift <U>(MyEnumerable <IFunc <T, U> > func)
        {
            return(new Function <MyEnumerable <T>, MyEnumerable <U> >(_t =>
            {
                U[] list = new U[func.Count() * _t.Count()];
                int index = 0;
                foreach (IFunc <T, U> f in func)
                {
                    foreach (T t in _t)
                    {
                        list[index++] = f.Evaluate(t);
                    }
                }

                return new MyEnumerable <U>(list);
            }));
        }