Hacker News new | ask | show | jobs
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.