On Thu, Jan 6, 2011 at 7:18 AM, Keiko Nakata <ke...@kurims.kyoto-u.ac.jp> wrote: >> 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 looked over the docs again, and I see that I was talking about the world before call-with-exception-handler. So please disregard. > 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.) Probably you can get very close if not exactly there if you implement call-with-exception-handler at the same time. If you wanted to try, I'd suggest adapting the redex model and then using random testing to try to find the difference..... > I hope my email makes sense... Yeah, it does. Now that I'm no longer confused. :) Robby _________________________________________________ For list-related administrative tasks: http://lists.racket-lang.org/listinfo/users