Esempio n. 1
0
        public static ImList <T> Tail <T>(ImList <T> list)
        {
            var lst = list.GetList();

            lst.RemoveAt(0);
            return(new ImList <T>(lst));
        }
Esempio n. 2
0
        public static ImList <T> Sort <T>(ImList <T> list)
        {
            var lst = list.GetList();

            lst.Sort();
            return(new ImList <T>(lst));
        }
Esempio n. 3
0
        public static void Each <T>(Action <T> iterator, ImList <T> list)
        {
            var lst = list.GetList();

            foreach (T item in lst)
            {
                iterator(item);
            }
        }
Esempio n. 4
0
        public static R Fold <T, R>(Func <R, T, R> iterator, R initialValue, ImList <T> list)
        {
            var lst = list.GetList();
            var acc = initialValue;

            foreach (T item in lst)
            {
                acc = iterator(acc, item);
            }
            return(acc);
        }
Esempio n. 5
0
 public static ImList <T> Replace <T>(Func <T, bool> predicate, T newItem, ImList <T> list)
 {
     for (int x = 0; x < list.Count; x++)
     {
         if (predicate(list[x]))
         {
             var lst = list.GetList();
             lst[x] = newItem;
             return(new ImList <T>(lst));
         }
     }
     return(list + newItem);
 }
Esempio n. 6
0
        public static T Find <T>(Func <T, bool> iterator, ImList <T> list)
        {
            var lst = list.GetList();

            foreach (T item in lst)
            {
                if (iterator(item))
                {
                    return(item);
                }
            }
            return(default(T));
        }