<div dir="ltr"><br><br><div class="gmail_quote">On Sat, Jul 19, 2008 at 4:03 PM, Grant Rettke &lt;<a href="mailto:grettke@acm.org">grettke@acm.org</a>&gt; wrote:<br><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
In a thread that I can&#39;t find, </blockquote><div>Check out <a href="http://blog.plt-scheme.org">blog.plt-scheme.org</a> last July and August, and of course this list at the same time.</div><div>&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;">
I&#39;m pretty sure that Matthias posted<br>
some interesting &quot;self modifying code&quot; that looked like this, which I<br>
found on:<br>
<br>
<a href="http://en.wikipedia.org/wiki/Call-with-current-continuation" target="_blank">http://en.wikipedia.org/wiki/Call-with-current-continuation</a><br>
<br>
;; [LISTOF X] -&gt; ( -&gt; X u &#39;you-fell-off-the-end-off-the-list)<br>
(define (generate-one-element-at-a-time a-list)<br>
 &nbsp;;; (-&gt; X u &#39;you-fell-off-the-end-off-the-list)<br>
 &nbsp;;; this is the actual generator, producing one item from a-list at a time<br>
 &nbsp;(define (generator)<br>
 &nbsp; &nbsp;(call/cc control-state))<br>
 &nbsp;;; [CONTINUATION X] -&gt; EMPTY<br>
 &nbsp;;; hand the next item from a-list to &quot;return&quot; (or an end-of-list marker)&#39;<br>
 &nbsp;(define (control-state return)<br>
 &nbsp; &nbsp;(for-each<br>
 &nbsp; &nbsp; (lambda (an-element-from-a-list)<br>
 &nbsp; &nbsp; &nbsp; (call/cc<br>
 &nbsp; &nbsp; &nbsp; &nbsp;(lambda (resume-here)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(set! control-state resume-here)<br>
 &nbsp; &nbsp; &nbsp; &nbsp; &nbsp;(return an-element-from-a-list))))<br>
 &nbsp; &nbsp; a-list)<br>
 &nbsp; &nbsp;(return &#39;you-fell-off-the-end-off-the-list))<br>
 &nbsp;;; time to return the generator<br>
 &nbsp;generator)<br>
<br>
(define gen (generate-one-element-at-a-time &#39;(a b c)))<br>
(gen)<br>
(gen)<br>
(gen)<br>
(gen)<br>
<br>
This is another chunk of code that worked fine in v372, and per the<br>
thread [Confusing continuation behavior (a question about)], I suspect<br>
that the code shouldn&#39;t have worked, because now it goes into an<br>
endless loop?</blockquote><div><br></div><div>I suspect that what changed is that for each is now looking up &#39;control-state</div><div>only once, so changing it with set! does nothing. &nbsp;That said, I know almost nothing about</div>
<div>what I am talking about here.&nbsp;</div><blockquote class="gmail_quote" style="margin:0 0 0 .8ex;border-left:1px #ccc solid;padding-left:1ex;"><br>
<br>
I&#39;m migrating all of my collected code snips from 3 to 4, perhaps the<br>
solution is the same as the other thread, but I haven&#39;t figured that<br>
one out yet ;).<br>
_________________________________________________<br>
 &nbsp;For list-related administrative tasks:<br>
 &nbsp;<a href="http://list.cs.brown.edu/mailman/listinfo/plt-scheme" target="_blank">http://list.cs.brown.edu/mailman/listinfo/plt-scheme</a><br>
</blockquote></div><br></div>