<br><br><div class="gmail_quote">2009/2/25 Shriram Krishnamurthi <span dir="ltr">&lt;<a href="mailto:sk@cs.brown.edu">sk@cs.brown.edu</a>&gt;</span><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
Presumably you mean it extends the closure of its body (otherwise<br>
you&#39;d have dynamic scope).  In that case, you&#39;re doing what is known<br>
as trampolining.  Nice to discover it for yourself!  But it&#39;s VERY<br>
different from continuation-passing style.  (If you really want your<br>
eyes to glaze over, you can read the paper entitled &quot;Trampolined<br>
Style&quot; (Google for it).)</blockquote><div><br>Yes -- each function keeps a reference to the scope where it is defined, and extends that scope when called so scoping is lexical. Thanks for the clarification; I&#39;ve seen the terms CPS and trampolining come up in other people&#39;s implementations but haven&#39;t been able to read enough yet to know exactly what trampolining is. I&#39;m familiar enough with CPS since I write a lot of JavaScript (where you have events, async IO, animations that all make use of &#39;continuation&#39; functions as callbacks) but can&#39;t immediately see how to convert my whole interpreter to that style.<br>
</div></div><br>