On Nov 2, 2012, at 4:54 PM, Brendan Eich wrote:

> Allen Wirfs-Brock wrote:
>> ...
>> Note that we (the JS/ES designers) already have a history of being being 
>> inconsistent in our use of names.  Consider String indexOf and Array indexOf
> 
> http://stackoverflow.com/questions/4962361/where-is-javas-array-indexof
> 
>> they are named the same and appear to have signatures.  But they logically 
>> are doing quite different things.  String indexOf is looking for the index 
>> of the first element of a subsequence of character elements that matches a 
>> specific character sequence.  Array indexOf is looking for the index of a 
>> single element that contains a specific value.  You might want to implement 
>> a logically similar subsequence search for Array's but if you do, you can't 
>> call it indexOf because that name was already used for something with 
>> different semantics.  We should try to do better as people for our example.
> 
> That one never bugged me, and I suppose one could "fix" it by allowing 
> by-value search for a sub-array from Array.prototype.indexOf. I've never seen 
> anyone do that.

It never bothered me either up to now. Probably because we usually don't think 
about JS strings as a "collections"  (immutable array of uint16s) all that 
much.  But if you starting thinking about  strings as a kind of collection and 
look for uniformity in collection interfaces, indexOf stands out as being 
problematic. 


> 
> "has" for keys (and possibly values of a Set, to preserve the value mapped to 
> boolean future option that forEach also supports), "contains" for values in 
> arrays
> 

sounds ok, except we get the same issue for contains that we have for indexOf.  
II guess the big thing with contains is that it can be applied no non-indexed 
collections (maps, sets, etc.). 

Also any reason contains should be provided for WeakMap? I not seeing why it 
shouldn't be there too.

Allen
_______________________________________________
es-discuss mailing list
es-discuss@mozilla.org
https://mail.mozilla.org/listinfo/es-discuss

Reply via email to