Steven Schveighoffer wrote:
On Mon, 18 May 2009 09:54:16 -0400, Jacob Carlborg <d...@me.com> wrote:

Steven Schveighoffer wrote:
On Sun, 17 May 2009 20:28:24 -0400, Andrei Alexandrescu <seewebsiteforem...@erdani.org> wrote:

Consider:

     foreach (x; 1.0 .. 4.1) writeln(x);
     foreach_reverse (x; 1.0 .. 4.1) writeln(x);

This sucks. foreach with interval for floating-point types should be disallowed.
foreach_reverse sucks in its own right, while you're looking for stuff to get rid of, I think it can be done better. foreach(x; 4 .. 1 ) should do a reverse interval (and looks way more readable).
foreach(x; array.reverse) should iterate in reverse.
 for classes, using a method called reverse should work fine:
 foreach(x; myclass.reverse)
Having to implement opApplyReverse is rediculous, and having a keyword like foreach_reverse is rediculous. Reverse isn't the only interesting iteration pattern, so why focus a whole keyword and syntax on that?
 -Steve

I agree with that, but how would you differ foreach(x; array.reverse) from the array.reverse that modifies the array?

D'oh! I picked the wrong property name. Forgot about the existing reverse property!

Just to clarify, I am *not* advocating that the propery way to iterate an array in reverse is to first reverse the array!

So pick some other property name:

foreach(x; array.backwards)

or whatever.  Too bad reverse is already taken :(

-Steve

sort and reverse for slices should go, by the way.

Andrei

Reply via email to