guile-user
[Top][All Lists]
Advanced

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

Re: "Missing" libraries/concepts found in other languages/ecosystems?


From: Chris Vine
Subject: Re: "Missing" libraries/concepts found in other languages/ecosystems?
Date: Sun, 12 Jul 2020 00:09:34 +0100

On Sat, 11 Jul 2020 18:41:34 -0400
John Cowan <cowan@ccil.org> wrote:
> On Sat, Jul 11, 2020 at 6:39 PM Chris Vine <vine35792468@gmail.com> wrote:
> > On Sat, 11 Jul 2020 14:20:22 -0400
> > John Cowan <cowan@ccil.org> wrote:
> > > On Sat, Jul 11, 2020 at 6:14 AM Chris Vine <vine35792468@gmail.com>
> > wrote:
> > >
> > > > (To answer the question in your
> > > > following email, continuable exceptions are in some sense analogous to
> > > > common lisp restarts.)
> > >
> > > Continuable and non-continuable in Scheme are exactly like CL raise and
> > > error (and its variants), except that the machinery is different.
> > Restarts
> > > are another matter, independent of the condition system (though often
> > > considered with it).  I have a pre-SRFI for them at <
> > > https://github.com/johnwcowan/r7rs-work/blob/master/RestartsCowan.md>,
> > > similar to but simpler than the CL restart system, and using first-class
> > > restarts.  It currently lacks restart-case.
> >
> > I am not an expert on CL so can you provide me with the hyperspec
> > reference to CL 'RAISE'?  (I know about CL 'ERROR' and 'SIGNAL'.)
> >
> > [snip]
> > > > R6RS/R7RS's guard form is a wrapper for this which also
> > > > incorporates a cond form to enable different exception types to be
> > > > handled by different handlers.
> > > >
> > >
> > > Is the intention to provide `guard` in Guile 3.x?
> >
> > It's been in guile for as long as I can remember (at least since 2.0).
>
> Sorry, I meant SIGNAL, not RAISE, in CL.  I'm glad Guile supports `guard`.

So when you said "continuable and non-continuable in Scheme are exactly
like CL [signal] and error (and its variants)" are you then saying that
SIGNAL == continuable (ie raise-continuable in R6RS) and ERROR ==
non-continuable (ie raise in R6RS)?  If not, can you re-express what
you were intending to say?

In what way do you say that continuable exceptions are not in some sense
analogous to common lisp restarts (noting the "in some sense"?



reply via email to

[Prev in Thread] Current Thread [Next in Thread]