6 ms·
If you're giving up CL for Ruby, the CLOS is worth discussing. If you're giving up CL for Haskell, well, it's a different story. :) I never used the condition
by fusiongyro 13y ago
If you're giving up CL for Ruby, the CLOS is worth discussing. If you're giving up CL for Haskell, well, it's a different story. :)
I never used the condition system extensively (or CL) but my recollection is that when you raise the condition you can also furnish various recovery strategies to be selected by the handler. If the caller doesn't handle, it will travel up the stack to someone who does, but that entity is not limited to innovating its own handling strategy, it can also choose one of the provided ones without breaking the abstraction or involving intermediate callers. The toplevel handler shows the provided restarts, adds the retry/fail options and lets the user interactively select one. It's pretty sophisticated.