public Object reduce(IFn f) { Object acc = start; long i = start + step; while(! boundsCheck.exceededBounds(i)) { acc = f.invoke(acc, i); if (acc instanceof Reduced) return ((Reduced)acc).deref(); i += step; } return acc; }
public Object reduce(IFn f, Object val) { Object acc = val; long i = start; do { acc = f.invoke(acc, i); if (RT.isReduced(acc)) return ((Reduced)acc).deref(); i += step; } while(! boundsCheck.exceededBounds(i)); return acc; }
public Object reduce(IFn f) { Object acc = start; long i = start + step; while(! boundsCheck.exceededBounds(i)) { acc = f.invoke(acc, i); if (acc instanceof Reduced) return ((Reduced)acc).deref(); i += step; } return acc; }
public Object reduce(IFn f, Object val) { Object acc = val; long i = start; do { acc = f.invoke(acc, i); if (RT.isReduced(acc)) return ((Reduced)acc).deref(); i += step; } while(! boundsCheck.exceededBounds(i)); return acc; }
public Object reduce(IFn f, Object val) { Object acc = val; Object i = start; while(! boundsCheck.exceededBounds(i)) { acc = f.invoke(acc, i); if (RT.isReduced(acc)) return ((Reduced)acc).deref(); i = Numbers.addP(i, step); } return acc; }
public Object reduce(IFn f) { Object acc = start; Number i = Numbers.addP(start, step); while(! boundsCheck.exceededBounds(i)) { acc = f.invoke(acc, i); if (RT.isReduced(acc)) return ((Reduced)acc).deref(); i = Numbers.addP(i, step); } return acc; }
if (ret instanceof Reduced) { Reduced red = (Reduced) ret; Builder<?> sb = (Builder<?>) red.deref(); return Stream.concat(sb.build(), flush());