static public PersistentVector create1(IEnumerable items) { // optimize common case IList ilist = items as IList; if (ilist != null) { int size = ilist.Count; if (size <= 32) { Object[] arr = new Object[size]; ilist.CopyTo(arr, 0); return(new PersistentVector(size, 5, PersistentVector.EmptyNode, arr)); } } ITransientCollection ret = EMPTY.asTransient(); foreach (object item in items) { ret = ret.conj(item); } return((PersistentVector)ret.persistent()); }
static public PersistentVector create1(ICollection items) { ITransientCollection ret = EMPTY.asTransient(); foreach (object item in items) { ret = ret.conj(item); } return((PersistentVector)ret.persistent()); }
static public PersistentVector create(ISeq items) { ITransientCollection ret = EMPTY.asTransient(); for (; items != null; items = items.next()) { ret = ret.conj(items.first()); } return((PersistentVector)ret.persistent()); }
private object ReadSet(TextReader source) { ConsumeChar(source); ReadWhiteSpace(source); ITransientCollection transientSet = PersistentHashSet.EMPTY.asTransient(); while (PeekChar(source) != '}') { transientSet = transientSet.conj(Read(source)); ReadWhiteSpace(source); } ConsumeChar(source); return(transientSet.persistent()); }
private object ReadVector(TextReader source) { ConsumeChar(source); ReadWhiteSpace(source); ITransientCollection transientVector = PersistentVector.EMPTY.asTransient(); while (PeekChar(source) != ']') { transientVector = transientVector.conj(Read(source)); ReadWhiteSpace(source); } ConsumeChar(source); return(transientVector.persistent()); }