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