On Jul 30, 2010, at 2:47 PM, felix wrote:

> On 7/30/10 14:37, Brendan Eich wrote:
>> For Harmony, we do not propose to standardize |for each|. Instead, the 
>> iteration and array comprehensions proposals for Harmony (see the wiki) 
>> propose that programmers choose keys, values, items (properties), or other 
>> iteration protocols by saying what they mean more precisely on the 
>> right-hand side of 'in':
>> 
>> for (k in keys(o)) ...
>> for (v in values(o)) ...
>> for ([k, v] in properties(o)) ... // Python's "items"
>> 
>> This seems better in TC39 members' views than adding ambiguous 'each' as a 
>> contextual keyword.
> 
> I'm wary of that because this looks to me confusing:
>   a = keys(o);
>   for (k in a) ...

The confusion here seems to be assuming that |a| is an Array instance. It's 
not. It is an iterator, so you'll get the keys (property names) found in o -- 
you won't get 0, 1, ... a.length-1.

To avoid this confusion you can add new syntax (|for each| or whatever, doesn't 
matter). I've argued in recent posts that it is better from a global and 
long-term point of view to reform for-in after Python, than to condemn it and 
grow the language with new and generally more verbose, yet similar, syntax.


> or is keys(o) special syntax that only works within a for() statement?

No.

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

Reply via email to