<div><div><span id="_user_matthias@ccs.neu.edu" style="color: rgb(121, 6, 25);">Matthias thanks</span> a lot<br><br></div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
1. How can I use control.ss so that I don&#39;t need two call/cc&#39;s to<br>implement a switch of control?</blockquote><div><br>something like this?<br>---------------<br>(require (lib &quot;control.ss&quot;))<br><br>(define-syntax make-gen
<br>&nbsp; (syntax-rules ()<br>&nbsp;&nbsp;&nbsp; [(_ yield-name (name arg ...) body ...)<br>&nbsp;&nbsp;&nbsp;&nbsp; (define (name arg ...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (define (control-state) body ...)<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (define (yield-name value) <br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (control resume-here (set! control-state resume-here) value))
<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; (lambda () (prompt (control-state))))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; ]))<br>&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;&nbsp; <br>(make-gen yield (make-step)<br>&nbsp; (yield 1)<br>&nbsp; (yield 2)<br>&nbsp; (yield 3)<br>&nbsp; &#39;finished)<br><br>(define step (make-step))<br><br>(step) (step) (step) (step) (step)
<br>&nbsp;</div><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">2. How can I use the macro system to eliminate the &#39;yield-name&#39; part<br>of the macro?
</blockquote><div><br>That&#39;s the bit I need to work on, I suppose :)&nbsp; I&#39;ll play with that later today.<br></div><br><blockquote class="gmail_quote" style="border-left: 1px solid rgb(204, 204, 204); margin: 0pt 0pt 0pt 0.8ex; padding-left: 1ex;">
You may also realize that step is a non-re-entrant function. Argh.<br>But I didn&#39;t choose that part :-)</blockquote><div><br>Yes, it is not. But then again the python/lua equivalents are not really reentrant either, and I just try to mimic those. At least for now. Turning this into a &#39;factory&#39; I think improves somewhat the practicality of the code.
<br></div><br>Vlado<br></div><br>