Пример #1
0
        public static ListMonad <TOut> ConcatMap <TIn, TOut>(this ListMonad <TIn> m, Func <TIn, TOut> func)
        {
            ListMonad <TOut> output = ListMonad.Return(new List <TOut>());

            if (m.Values != null && m.Values.Any())
            {
                foreach (TIn item in m.Values)
                {
                    TOut temp = func(item);
                    output.Values.Add(temp);
                }
            }
            return(output);
        }
Пример #2
0
        static void Main(string[] args)
        {
            // Bind Example
            IdentityMonad.BindExample();

            // Select Many Example
            IdentityMonad.SelectManyExample();

            // LINQ Example
            IdentityMonad.LinqExample();

            // Maybe Monad Example
            MaybeMonad.LinqExample();

            // List Monad Example
            ListMonad.LinqExample();

            // Continuation Monad Example
            ContinuationMonad.LinqExample();

            // Async Computation Example
            AsyncComputationExample.LinqExample();
        }
Пример #3
0
    public void TestWrap()
    {
        var s = ListMonad.Wrap("test");

        s.Single().AssertEquals("test");
    }
Пример #4
0
 public C(ListMonad<long> m)
 {
     this.m = m;
 }
Пример #5
0
 public C(ListMonad <long> m)
 {
     this.m = m;
 }