Exemplo n.º 1
0
        /** Partitions enumerable into two lists using a predicate: (all false elements, all true elements) **/
        public static Partitioned <A> partition <A>(this IEnumerable <A> enumerable, Fn <A, bool> predicate)
        {
            var trues  = new List <A>();
            var falses = new List <A>();

            foreach (var a in enumerable)
            {
                (predicate(a) ? trues : falses).Add(a);
            }
            return(Partitioned.a(trues, falses));
        }
Exemplo n.º 2
0
        public static Partitioned <A> partition <A>(this IEnumerable <A> enumerable, Fn <A, bool> predicate)
        {
            var trues  = ImmutableList.CreateBuilder <A>();
            var falses = ImmutableList.CreateBuilder <A>();

            foreach (var a in enumerable)
            {
                (predicate(a) ? trues : falses).Add(a);
            }
            return(Partitioned.a(trues.ToImmutable(), falses.ToImmutable()));
        }