|
|
|
|
|
by AdieuToLogic
393 days ago
|
|
>> Like goto, but you don't even need to name a label. > That's what exceptions are. In many contexts I agree. However, the difference here is exceptions are one-way execution control transfers. Remember what was originally said: No amount of monad shenanigans is going to allow you to
immediately jump to an effect handler 5 levels up the call
stack, update some local variables in that stack frame, and
then jump back to execution at the same point 5 levels down.
Jumping "5 levels up the call stack", modifying some state, then jumping back "5 levels down" is to me pretty much the definition of a nightmare to reason about. |
|