Andreas Rossberg wrote:
On 4 February 2012 18:49, Brendan Eich<[email protected]> wrote: In other words, why isn't the following good enough?{ let d1 = e1, ..., dN = eN; const $loop = {|d1, ..., dN| if (cond) { body update; $loop(d1, ..., dN); } } $loop(d1, ..., dN); }
This is the "0th iteration scope" idea. It's good enough if (a) we want skip2 (see last post) affecting no iteration's loop variables, and (b) we can take the extra scope cost-hit.
FWIW, this is simply the generalization of Mark's desugaring so that it works with destructuring, multiple bindings, and recursive bindings. Plus, it removes the redundant second lambda in his version.
It's fine if we like (a) on usability grounds, and (b) is true for all implementors and wtf-benchmarketing kooks.
I argued vigorously for 1st-iteration rather than 0th-iteration scope but that was to say "no" to (b). I'm actually not sure what skip2-coding authors will want -- probably an error as Allen suggests. But let's say yes to (a) -- I can live with (b) absent further evidence.
The issue remains (a). Allen's best shot is the skip2 scenario (advance in his post). What's the right outcome for users who write such code?
/be _______________________________________________ es-discuss mailing list [email protected] https://mail.mozilla.org/listinfo/es-discuss

