Hello again, On Thu, 17 Mar 2011, Andy Wingo wrote: >[...] > On Wed 09 Mar 2011 11:53, Wolfgang J Moeller <[email protected]> writes: >[...] > > (define-syntax reset > > (syntax-rules () > > ((_ . body) > > (call-with-prompt 'Reset > > (lambda () . body) > > (lambda (cont f) (f cont)))))) > > ;; > > (define-syntax shift > > (syntax-rules () > > ((_ var . body) > > (abort-to-prompt 'Reset > > (lambda (cont) > > ((lambda (var) (reset . body)) > > (lambda vals (reset (apply cont vals))))))))) >[...] > Did you write these yourself? May we include them in (ice-9 control)?
Yes and yes. However, I don't like it anymore, since I seem to have learned that this "direct implementation" doesn't at all play well with the use of call/cc within the <body>s, while the call/cc-based implementations of shift/reset appear to do so. I've yet to find out why the latter work "better", and if there's a remedy possible using something like with-continuation-barrier ... > If you have additional useful tests, we are happy to include them as > well. Probably the easiest thing would be to mail them to the list with > a permissive copyright header. The tests that I had included come from http://okmij.org/ftp/, as does almost all I know about "delimited continations" (I first learned about them only a few weeks before you released GUILE V2). There are a few more tests at that site. Best regards, Wolfgang J. Moeller, Tel. +49 551 47361, wjm<AT>heenes.com 37085 Goettingen, Germany | Disclaimer: No claim intended! http://www.wjmoeller.de/ -+-------- http://www.heenes.com/
