Michiel Helvensteijn wrote:
Andrei Alexandrescu wrote:

void main()
{
     foreach_reverse (i; 0.7 .. 100.7)
     {
         write(i, " ");
     }
}

The last number printed is -0.3.

A question if I may.

Why does D allow iteration over an interval of floats? A floating point
number has no direct successor or predecessor. Any such interval would
contain zero, one or infinite elements.

Given the -0.3, I'm assuming you increase/decrease by 1.0 each iteration. Is
this useful enough to be the standard behavior?


It's a petri dish. Perfect breeding ground for bugs.

real BIG = 2.0 /(real.epsilon);

foreach(i; BIG .. BIG + 2) {
  ...
}

Infinite loop, since BIG + 1 == BIG.

Reply via email to