foreach_reverse is better than ever
Steven Schveighoffer
schveiguy at yahoo.com
Mon Feb 15 13:00:04 PST 2010
On Sun, 14 Feb 2010 00:53:31 -0500, Andrei Alexandrescu
<SeeWebsiteForEmail at erdani.org> 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
More information about the Digitalmars-d
mailing list