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

Reply via email to