spir wrote:
> On Thu, 02 Dec 2010 08:54:43 -0800
> Ali Çehreli <[email protected]> wrote:
>
>> bearophile wrote:
>>  > Pelle M.:
>>  >
>>  >> It doesn't exist for performance reasons, I think.
>>  >
>>  > It's not a matter of performance. Walter thinks that "in" on
>>  > AAs searches on keys. And the "keys" of a dynamic array are its
>>  > indices. And searching for indices in a dynamic array is not so
>>  > useful. Therefore no "in" for dynamic/static arrays. I think
>>  > this line of thought is not practical, and Python gets this
>>  > better.
>>
>> I think Walter's is a good point. If 'in' searches among keys for AAs;
>> for arrays, it would be implemented trivially as
>>
>>      (index >= 0) && (index < array_length)
>
> That's not the point...
>
>> I think that expression allows for negative index values too. And yes, I
>> had to check before posting as I can't be sure about the integer
>> promotion rules. :)
>>
>> If 'in' were to search among the values of arrays, then it wouldn't have
>> the same meaning with AAs.
>

> Yes-no. In an ordered set (read: many uses of arrays),

I disagree with that. Arrays are for consecutive elements, usually unordered. The index is their position in the collection.

> elements
> conceptually are their own keys. We must have a simple way to
> express membership test -- even if possibly costly for large
> arrays. Else, we need a builtin Set type to do the job. (I have
> one prototype in stock, if interesting for Phobos).

Agreed but that's a completely different data structure. Sets cannot satisfy the O(1) operations of arrays.

I was responding related to D's arrays, which are not sets.

Ali

Reply via email to