On Thursday, 14 March 2013 at 13:58:45 UTC, n00b wrote:
I tried to use a boolean operator for an array operation :
a[] = b[] < c[];
It compiles but seems to only fill a[] with the result of b[0]
< c[0].
Is there any "rational" reason to that?
Yes i think there is a rational reason. Check this:
int a[] = [1,0,0];
int b[] = [0,1,0];
int c[] = [1,1,0];
bool ab = a[] < b[]; // False. a[0] > b[0]
bool ac = a[] < c[]; // True. a[0] == c[0] but a[1] < c[1];
writeln(ab);
writeln(ac);
c[] = ab; // <-- assign!
You see? Your code do this:
a[] = (b[] < c[]);