Пример #1
0
        static public IPersistentVector create(object obj)
        {
            IReduceInit ri = obj as IReduceInit;

            if (ri != null)
            {
                return(PersistentVector.create(ri));
            }

            ISeq iseq = obj as ISeq;

            if (iseq != null)
            {
                return(PersistentVector.create(RT.seq(obj)));
            }

            IEnumerable ie = obj as IEnumerable;

            if (ie != null)
            {
                return(PersistentVector.create1(ie));
            }

            return(createOwning(RT.toArray(obj)));
        }
        static public PersistentVector create(IReduceInit items)
        {
            TransientVector ret = (TransientVector)EMPTY.asTransient();

            items.reduce(_transientVectorConj, ret);
            return((PersistentVector)ret.persistent());
        }
        static public IPersistentVector create(object obj)
        {
            //if ((obj is Counted || RT.SupportsRandomAccess(obj))
            //    && fcount(obj) <= Tuple.MAX_SIZE)
            //    return Tuple.createFromColl(obj);

            IReduceInit ri = obj as IReduceInit;

            if (ri != null)
            {
                return(PersistentVector.create(ri));
            }

            ISeq iseq = obj as ISeq;

            if (iseq != null)
            {
                return(PersistentVector.create(RT.seq(obj)));
            }

            IEnumerable ie = obj as IEnumerable;

            if (ie != null)
            {
                return(PersistentVector.create1(ie));
            }

            return(createOwning(RT.toArray(obj)));
        }
Пример #4
0
 public static PersistentVector create(IReduceInit items)
 {
     TransientVector ret = (TransientVector)EMPTY.asTransient();
     items.reduce(_transientVectorConj, ret);
     return (PersistentVector)ret.persistent();
 }