public static ISeq create(long count, Object val){ if(count <= 0) return PersistentList.EMPTY; return new Repeat(count, val); }
public static ISeq create(final long start, long end, long step) { if(step > 0) { if(end <= start) return PersistentList.EMPTY; return new LongRange(start, end, step, positiveStep(end)); } else if(step < 0) { if(end >= start) return PersistentList.EMPTY; return new LongRange(start, end, step, negativeStep(end)); } else { if(end == start) return PersistentList.EMPTY; return Repeat.create(start); } }
public static ISeq create(final long start, long end, long step) { if(step > 0) { if(end <= start) return PersistentList.EMPTY; return new LongRange(start, end, step, positiveStep(end)); } else if(step < 0) { if(end >= start) return PersistentList.EMPTY; return new LongRange(start, end, step, negativeStep(end)); } else { if(end == start) return PersistentList.EMPTY; return Repeat.create(start); } }
public ISeq next() { if(_next == null) { if(count > 1) _next = new Repeat(count - 1, val); else if(count == INFINITE) _next = this; } return _next; }
public static ISeq create(final Object start, Object end, Object step) { if((Numbers.isPos(step) && Numbers.gt(start, end)) || (Numbers.isNeg(step) && Numbers.gt(end, start)) || Numbers.equiv(start, end)) return PersistentList.EMPTY; if(Numbers.isZero(step)) return Repeat.create(start); return new Range(start, end, step, Numbers.isPos(step)?positiveStep(end):negativeStep(end)); }
public static Repeat create(Object val){ return new Repeat(INFINITE, val); }
public static ISeq create(long count, Object val){ if(count <= 0) return PersistentList.EMPTY; return new Repeat(count, val); }
public ISeq next() { if(_next == null) { if(count > 1) _next = new Repeat(count - 1, val); else if(count == INFINITE) _next = this; } return _next; }
public static Repeat create(Object val){ return new Repeat(INFINITE, val); }
public Repeat withMeta(IPersistentMap meta){ return new Repeat(meta, count, val); }