On Mon, 02 Jun 2014 15:47:02 -0400, Logesh Pillay
<lp.court.jes...@gmail.com> wrote:
Issue has nothing to do with recursion. That's only where I keep seeing
it.
eg a function to generate combinations.
import std.stdio;
int[3] t;
void foo (int i) {
if (i == 3)
writef("%s\n", t);
else foreach (x; 0 .. 3) {
t[i] = x;
foo(i+1);
}
}
void main() {
foo(0);
}
In C, I could put in the equivalent for statement for foreach, t[i] as
the iterating variable. I won't need x which exists as a middleman only
and save myself two lines.
OK, I get it. You want to do:
foreach(t[i]; 0 .. 3)
But this doesn't work.
This should (the equivalent for C):
for(t[i] = 0; t[i] < 3; ++t[i])
I'm trying to think of a way to do this without loops, but not sure. Note
that foreach is expected to be given a new variable to declare, so you
can't foreach with an existing variable on the left.
-Steve