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 *= factor; ret j; } }; }