'in' for plain arrays?

spir denis.spir at gmail.com
Fri Dec 3 08:29:19 PST 2010


On Thu, 02 Dec 2010 08:54:43 -0800
Ali Çehreli <acehreli at yahoo.com> 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), 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).


Denis
-- -- -- -- -- -- --
vit esse estrany ☣

spir.wikidot.com



More information about the Digitalmars-d-learn mailing list