<br><br><div class="gmail_quote">2012/1/19 Kevin Reid <span dir="ltr"><<a href="mailto:kpreid@switchb.org" target="_blank">kpreid@switchb.org</a>></span><br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">

On Jan 19, 2012, at 19:40, Waldemar Horwat wrote:<br>
<br>
> Waldemar:  What about read-eval-print loops?<br>
> MarkM:  Each eval inserts one more nested scope.<br></blockquote><div><br></div><div>This is not what users of REPL want or expect.</div><div> </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">


> Waldemar:  What if someone does this:<br>
> > let x = 3;<br>
> > function foo() {return x;}<br>
> > let x = 7;<br>
> This would leave foo returning 3.<br>
> MarkM:  That's the proper behavior.  Anything else has problems.<br></blockquote><div><br></div><div>Developers expect these lines to be part of a program they happened to type in, in the same scope. </div><div>

 </div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex">
> Waldemar:  [incredulous]<br>
> Allen:  We shouldn't spec read-eval-print loops.<br></blockquote><div><br></div><div>The scope issues above are complicated by the need to augment the scope with REPL-specific values, aids to using the environment interactively. The simple way to implement REPL is eval, the simple augmentation is "with(REPL-stuff){ ...}" </div>
<div><br></div><div>So we have a feature highly prized by JS developers based on two languages features unloved on es-discuss: maybe Allen is on to something ;-).</div><div><br></div><div><br></div><div>jjb</div></div><br>