Am Sa., 26. Juni 2021 um 21:35 Uhr schrieb John Cowan <xxxxxx@ccil.org>:


On Sat, Jun 26, 2021 at 7:46 AM Marc Nieper-Wißkirchen <xxxxxx@gmail.com> wrote:

Similarly, exceptions are just objects.

Technically, those are conditions.  "Exception" is not actually the *name* of anything in Lisp terminology: it is only used in the phrase "an exception is raised/signaled".

If we want to be that strict, my originally proposed wording "fully supports exceptions ... and other non-local control flow" can mean anything as one is free to interpret the term "exception" (without accompanying words like "handler" or "raised").

As to conditions: Does R7RS actually use this term in a technical sense? In R6RS, not all objects that can be raised are conditions.
 
They only take part in non-local control flow when they are *raised*

No, as I demonstrated.
and *handled*.

That's why I wrote *raised* _and_ *handled*. :)

As I mentioned in the note at the end of my last post, "non-local control flow" is not the true reason why one has to be careful with higher-order procedures. Actually, how do we define "non-local control flow" precisely? Whenever dynamic-wind handlers would be called? Or whenever the current continuation is discarded and replaced by another one? The latter sounds like a good definition. On the other hand, it is not stable under CPS transformation.