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