static ItIt geometricIterator(double a, double b, double factor) { assertTrue("factor > 1", factor > 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_exclusive_step(double a, double b, double step, IF1 f) { ret mapI_if1(f, countIterator_exclusive_step(a, b, step)); }