[racket] raise vs abort
> I'm not completely clear, but I think the only point is that 'raise'
> does not, in general, actually abort. It calls a handler that makes
> the decision to abort or not. When aborting actually happens, however,
> abort is what does the aborting.
Hmm. If I understand, you are saying that 'raise' is a function
call with dynamic binding for the function. I have been also thinking
a way to rationalize Racket's behavior of control operators
capturing and installing exception handlers; your view might be consistent
with this behavior too. I have to think about it more.
Still I am not certain that this behavior of 'raise' cannot be implemented
by other (delimited) control operators. And, probably I do not still
understand why 'raise' has to be a primitive.
At least, I'm not fully clear about it.
(For the moment I ignore the barrier, as it looks more like a contract
which guarantees some consistency.)
I hope my email makes sense...
Keiko