[racket] raise vs abort

From: Keiko Nakata (keiko at kurims.kyoto-u.ac.jp)
Date: Thu Jan 6 08:18:10 EST 2011

> 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...


Posted on the users mailing list.