I am sorry, this continuation stuff makes my head spin. I understand the barrier idea but I don't understand the motivation. A callback is just another function, why is it barred from escaping?<br>-pp<br><br><br><div><span class="gmail_quote">
On 10/6/06, <b class="gmail_sendername">Matthias Felleisen</b> &lt;<a href="mailto:matthias@ccs.neu.edu">matthias@ccs.neu.edu</a>&gt; wrote:</span><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
There is a built-in barrier -- a delimiter of control -- around<br>callbacks. If you think about it, it's quite obvious. A callback<br>doesn't return. But at the same time, all functions do return<br>somewhere. Well the place that is invisible and unavailable to you is
<br>somewhere in the system. And right around this call site there is a<br>barrier for all escapes. -- Matthias<br><br><br><br>On Oct 6, 2006, at 7:19 PM, pedro pinto wrote:<br><br>&gt; Hi there,<br>&gt;<br>&gt; Shouldn't this:
<br>&gt;<br>&gt;&nbsp;&nbsp; (require (lib &quot;class.ss&quot;)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(lib &quot;mred.ss&quot; &quot;mred&quot;))<br>&gt;<br>&gt;&nbsp;&nbsp; (define (go)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp; (let/ec return<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (let ((f (new dialog% (label &quot;Hello&quot;))))
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (new button% (parent f)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(label &quot;Me, Me!&quot;)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(callback (lambda _<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(send f show #f)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;(return &quot;Escaping&quot;))))
<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (send f show #t)<br>&gt;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; &quot;Did not Escape&quot;)))<br>&gt;<br>&gt;&nbsp;&nbsp; (go)<br>&gt;<br>&gt;<br>&gt;<br>&gt; Evaluate to &quot;Escaping&quot; when the user clicks the &quot;Me,Me!&quot; button?<br>
&gt;<br>&gt;<br>&gt;<br>&gt;<br>&gt; _________________________________________________<br>&gt;&nbsp;&nbsp; For list-related administrative tasks:<br>&gt;&nbsp;&nbsp; <a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme">http://list.cs.brown.edu/mailman/listinfo/plt-scheme
</a><br><br></blockquote></div><br>