On Sun, 14 Feb 2010 00:53:31 -0500, Andrei Alexandrescu <[email protected]> wrote:

Gone, that is. Walter agreed to remove it.

To achieve the functionality of

foreach_reverse (r) { ... }

use

foreach (retro(r)) { ... }

using retro in std.range.

Will retro work on AA's?

Other than that (and how to do foreach(1..100) that others have brought up) I think this is a great move.

BTW, for those bemoaning the loss of opApplyReverse, it is easy to change this:

struct S(T)
{
   int opApplyReverse(int delegate(ref T t) dg) {...}
}

S!int s;
foreach_reverse(i; s) {...}

into this:

struct S(T)
{
   int inReverse(int delegate(ref T t) dg) {...}
}

S!int s;
foreach(i; &s.inReverse){...}

Of course, I'd prefer it without the &, but that is a separate issue (see bug http://d.puremagic.com/issues/show_bug.cgi?id=2498)

Also, while your attention is focused on foreach, look at this bug: http://d.puremagic.com/issues/show_bug.cgi?id=2443

:)

-Steve

Reply via email to