[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]
Re: Scheme mistakes (was Re: nil)
Alan Bawden wrote:
> Date: Thu, 14 Aug 2003 15:01:49 -0500
> From: Matt Hellige <matt@immute.net>
> Mail-Followup-To: ll1-discuss@ai.mit.edu
>
> [Alan Bawden <Alan@lcs.mit.edu>]
> >
> > Consider evaluating:
> >
> > (throw (f x) 42)
> >
> > Since you know that the expression `(f)' must yield a continuation, the
> > old continuation can be discarded (and perhaps reclaimed by the garbage
> > collector) -before- you call the function `f'. If continuations just look
> > like procedures, then the programmer would have written:
> >
> > ((f x) 42)
> >
> > is which case you don't know that the old continuation is going to be
> > discarded until -after- the call to `f' returns a continuation.
>
> Is this really true? What if `f' causes an error? Mightn't we need the
> old continuation to handle it correctly?
>
> In pure R5RS Scheme I see no reason that old continuation can't be
> discarded.
But also, in pure R5RS Scheme I see no reason to program.
Shriram