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

Re: [Scheme-reports] About the behavior of continuation in top-level begin form

On Wed, Apr 17, 2013 at 9:21 PM, John Cowan <cowan@x> wrote:
張書瀚 scripsit:

> But the problem of begin, as I said before, is still there.  I don't
> think it's good to deliberately leave that behavior unspecified
> in the standard, so I post it here (for me, it creates unnecessary
> misunderstandings).

It's a hard problem.  Suppose you are using a Scheme system like Chicken
or Gambit, that compiles Scheme code to stand-alone executables.  What do
you expect this to do?

(call/cc (lambda (x) (x)))

Looks like the same as (values) to me.   Is there any reason why this might not be the case?

I just tested this on Chicken, and it works as expected -- both using the csi repl, and in a compiled program.

But, in general, I do agree that capturing a continuation and re-executing it through REPL code shouldn't be relied upon to behave in any predictable way.

There just isn't any good answer, because the captured continuation is
outside Scheme.  Likewise, if you run something like this from a REPL,
you are capturing a continuation in the REPL's own code, which may or
may not be in Scheme.

Such issues are inherently outside the scope of any Scheme standard.

John Cowan   cowan@x    http://ccil.org/~cowan
You cannot enter here.  Go back to the abyss prepared for you!  Go back!
Fall into the nothingness that awaits you and your Master.  Go! --Gandalf

Scheme-reports mailing list