:real-range

[syntax] :real-range vars stop

[syntax] :real-range vars start stop

[syntax] :real-range vars start stop step

SRFI-42: Runs through a range of real numbers using an explicit index variable. This form of range enumeration avoids accumulation of rounding errors and is the one to use if any of the numbers defining the range is inexact, not an integer, or a bignum of large magnitude.

Providing default value 0 for start and 1 for step, the generator first evaluates start, stop, and step, which must result in reals a, b, an d s such that n = (b-a)/s is also representable as a real. Then the sequence 0, 1, 2, ... is enumerated while the current value i is less than n, and the variable in vars is bound to the value a + i s. If any of the values a, b, or s is non-exact then all values in the sequence are non-exact.