public Object reduce(IFn f, Object init) { long x = start; Object ret = init; for(int i=0; i<count; i++) { ret = f.invoke(ret, x); if(RT.isReduced(ret)) return ret; x += step; } return ret; }
public Object reduce(IFn f, Object start){ Object ret = start; if(count == INFINITE){ while(true){ ret = f.invoke(ret, val); if(RT.isReduced(ret)) return ((IDeref)ret).deref(); } } else { for(long i=0; i<count; i++){ ret = f.invoke(ret, val); if(RT.isReduced(ret)) return ((IDeref)ret).deref(); } return ret; } }
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 rf, Object start){ Object ret = start; Object v = first(); while(true){ ret = rf.invoke(ret, v); if(RT.isReduced(ret)) return ((IDeref)ret).deref(); v = f.invoke(v); } } }
public Object reduce(IFn rf){ Object first = first(); Object ret = first; Object v = f.invoke(first); while(true){ ret = rf.invoke(ret, v); if(RT.isReduced(ret)) return ((IDeref)ret).deref(); v = f.invoke(v); } }
public Object reduce(IFn f, Object start){ Object ret = start; ISeq s = current(); while(true){ ret = f.invoke(ret, s.first()); if(RT.isReduced(ret)) return ((IDeref)ret).deref(); s = s.next(); if(s == null) s = all; } } }
private boolean step() { if(next != NONE) return true; while (next == NONE) { if(buffer.isEmpty()) { if(completed) { return false; } else if (sourceIter.hasNext()) { Object iter = null; if(multi) iter = xf.applyTo(RT.cons(null, sourceIter.next())); else iter = xf.invoke(null, sourceIter.next()); if(RT.isReduced(iter)) { xf.invoke(null); completed = true; } } else { xf.invoke(null); completed = true; } } else { next = buffer.remove(); } } return true; }
public Object reduce(IFn f){ ISeq s = current(); Object ret = s.first(); while(true) { s = s.next(); if(s == null) s = all; ret = f.invoke(ret, s.first()); if(RT.isReduced(ret)) return ((IDeref)ret).deref(); } }
public Object kvreduce(IFn f, Object init) { for (int i = 0; i < 16; i++) { INode n = children[i]; if (n != null) init = n.kvreduce(f, init); if (RT.isReduced(init)) break; } return init; }
public Object reduce(IFn f, Object init) { for (int i = 0; i < 16; i++) { INode n = children[i]; if (n != null) init = n.reduce(f, init); if (RT.isReduced(init)) break; } return init; }
public Object kvreduce(IFn f, Object init) { init = a.kvreduce(f, init); if (RT.isReduced(init)) return init; return b.kvreduce(f, init); }
public Object kvreduce(IFn f, Object init){ if(tree != null) init = tree.kvreduce(f,init); if(RT.isReduced(init)) init = ((IDeref)init).deref(); return init; }
public Object kvreduce(IFn f, Object init){ for(int i=0;i < array.length;i+=2){ init = f.invoke(init, array[i], array[i+1]); if(RT.isReduced(init)) return ((IDeref)init).deref(); } return init; }
public Object reduce(IFn f) { Object ret = array[i]; for(int x = i + 1; x < array.length; x++) { ret = f.invoke(ret, array[x]); if(RT.isReduced(ret)) return ((IDeref)ret).deref(); } return ret; }
public Object reduce(IFn f, Object init) { init = a.reduce(f, init); if (RT.isReduced(init)) return init; return b.reduce(f, init); }
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; }
public Object reduce(IFn f){ ISeq s = current(); Object ret = s.first(); while(true) { s = s.next(); if(s == null) s = all; ret = f.invoke(ret, s.first()); if(RT.isReduced(ret)) return ((IDeref)ret).deref(); } }