[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[Scheme-reports] Fwd: Comments on draft 6 about call/cc

---------- Forwarded message ----------
From:  <oleg@x>
Date: Fri, Mar 2, 2012 at 3:08 AM
Subject: Re: Comments on draft 6 about call/cc
To: alexshinn@x


       Thank you for forwarding the messages to the scheme-reports
list! I read the list via the web-accessible digest. I still owe you
the reply to the rest of your big message (I need to deal with a few
deadlines first).

> > There are far bigger practical problems. See the slides of Chung-chieh
> > Shan's ICFP06 talk
> > http://www.cs.rutgers.edu/~ccshan/dynscope/talk.pdf
> >
> > particularly slide 31 and the ones leading to it.
> Is that the correct URL?  It has only 20 slides.

The URL is correct; however, I should've said PDF page 31 (which is on
slide 13). Because of overlays, one slide corresponds to (many) PDF

> As a circular example, delimited continuations can't
> implement the call/cc form.

Really? I have pointed the definition, written by Rees, I think, which
has been in Scheme48 since about 1994. Please search for cwcc in


(starting line 119).

> This is an artifact of one particular implementation of the REPL.  If
> your REPL views the input as a proper stream (as in the following
> simple definition) then it gives the same result as the let-wrapped
> version:

Yet my point still stands: in some Scheme at least call/cc is
delimited at its REPL boundary. Some Scheme systems may let call/cc
capture continuation across REPLs. Yet they would typically delimit
call/cc at session boundaries (I mean the debugging session and
the main session; Chez calls them `Cafe'). Alan Bawden

       Reification without Evaluation
       Alan Bawden
       AI Memo, AIM-946, 1-Jun-1988

have argued that call/cc-captured continuations should not `shift
levels' (go between sessions), see Sec 3. In modern terms, he
advocated delimited call/cc. I think mane Scheme systems follow his

BTW, I'd like to comment on John Cowan's comment in

Exception handling has two aspects: first, determining the current
exception handler; second, transferring the control to that handler,
perhaps aborting the current continuation. The problematic
interaction between call/cc and exceptions (which are well-known in
SML/NJ, btw) occur at the phase of determining the exception handler
(and not at the phase of aborting the part of the computation).


Scheme-reports mailing list