Is [] mandatory for array operations?

Michel Fortin michel.fortin at michelf.com
Thu May 6 19:46:42 PDT 2010


On 2010-05-06 21:48:09 -0400, "Robert Jacques" <sandford at jhu.edu> said:

> On Thu, 06 May 2010 20:57:07 -0400, Michel Fortin  
> <michel.fortin at michelf.com> wrote:
> 
>> On 2010-05-06 19:02:03 -0400, Jason House <jason.james.house at gmail.com>  said:
>> 
>>> Don Wrote:
>>> 
>>>>  x[] = sin(y[]);
>>>  I strongly favor the first syntax since it matches how I'd write it in 
>>>  a for loop.
>>> i.e. I'd replace [] with [i].
>> 
>> This is the best way to see array operations I've read up to now:  
>> replace [] with [i], i being the current loop index. It's so simple to  
>> explain.
>> 
>> 
>>> If there was a sin variant that took array input, then I'd expect the  
>>> line to be:
>>>   x[] = sin(y)[]
>>>  which would translate to creating a temporary to hold sin(y) array.
>> 
>> Makes sense too.
> 
> this:
> for(int i = 0; i < x.length; i++) {
>      x[i] = sin(y)[i];
> }
> 
> makes sense?

Yes, if as stated by Jason there was a sin variant that took array input.

That said, I'd expect the compiler to call sin(y) only once, so it'd be 
more like that:

	auto sinY = sin(y);
	for(int i = 0; i < x.length; i++) {
		x[i] = sinY[i];
	}

-- 
Michel Fortin
michel.fortin at michelf.com
http://michelf.com/



More information about the Digitalmars-d mailing list