static IterableIterator countIterator_exclusive_step(final int a, final int b, final int step) { assertTrue("step > 0", step > 0); ret new IterableIterator() { int i = a; public bool hasNext() { ret i < b; } public Int next() { var j = i; i += step; ret j; } }; } static ItIt countIterator_exclusive_step(double a, double b, double step) { assertTrue("step > 0", step > 0); ret new IterableIterator() { double i = a; public bool hasNext() { ret i < b; } public Double next() { var j = i; i += step; ret j; } }; } static ItIt countIterator_exclusive_step(double a, double b, double step, IF1 f) { ret mapI_if1(f, countIterator_exclusive_step(a, b, step)); }