On Jul 30, 2010, at 2:53 PM, Brendan Eich wrote:

> On Jul 30, 2010, at 2:43 PM, felix wrote:
> 
>>> Of course this does not say what the syntax for a meta-programmable
>>> iteration construct should be, but laziness suggests "all" is not
>>> precisely on target.
>> 
>> so why not make it "for each"?  for-each iterates over a stream, and in the 
>> case of arrays the stream is the array values.
> 
> Reasons not to add each:
> 
> 1. Avoid another contextual keyword (few implemented E4X).
> 2. Avoid confusion over what "each" means.
> 3. Even assuming we added "each" based on E4X, the objection that |for each 
> (x in y)| loops would need to cope with y being a proxy that customizes 
> value-iteration exists.
> 
> Point 3 is Waldemar's objection w.r.t. |for-in| becoming customizable (as it 
> is in JS1.7 and Python). It applies equally to |for-each-in| given the E4X 
> precedent of non-proxy object on right of 'in' being enumerated (iterated 
> over its enumerable keys), and its enumerable keys' values returned.
> 
> One can bikeshed for days on all sorts of vague and wrongly general words 
> such as "each". Instead, focusing on the right side of "in", providing an 
> explicit iterator-factory call, seems strictly better.

I think that while "for each ... in" or "for all ... in" is a potentially 
confusing distinction vs. "for ... in", it still seems less potentially 
confusing to me than having no distinction at all.

Another entry for the bikeshedding pile: "for values ... in". That definitely 
screams "values, not keys".

Regards,
Maciej

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

Reply via email to