Common Lisp actually defines a third variant (condition/restart).
I would add the following (which have all been done in some languages, of course):
* composable abstractions
* modules at the language level, i.e. making ad-hoc dependency injection (whether manually of framework driven) obsolete
Common Lisp actually defines a third variant (condition/restart).
I would add the following (which have all been done in some languages, of course):
* composable abstractions
* modules at the language level, i.e. making ad-hoc dependency injection (whether manually of framework driven) obsolete