The Common Lisp Condition System: Beyond Exception Handling with Control Flow Mechanisms
C**N
Great for understanding how condition systems are implemented and how Common Lisp's is so powerful
Not only does Mr. Herda show _what_ makes the CL Condition System unique from the wide-spread try-throw-catch paradigm of many popular languages, he also shows _how_ it works through implementation.Starting with the blue-sky "wouldn't it be nice" daydream of a language designer in the Preface, he introduces the essential building blocks needed to implement a condition system (e.g dynamic extent) and then progressively uses them to build and improve an implementation. His treatment of restarts, one of the key features that make the Lisp condition system so powerful, has given me the "ah ha!" explanations I've needed to understand where they fit in with the more familiar parts of the condition system.In true Lisp fashion, he is able to present his implementation in the core language without digging into the language or compiler's internals, as one might fear if using a different language. Even still, the implementation feels just straight-forward enough it makes me wonder if this technique couldn't be used in other, non-Lisp languages. In the appendices Mr. Herda gives an example implementation of dynamic extent in C but any further ponderings of non-Lisp implementations are left for the reader to explore.I can't say I've fully internalized its knowledge after my first reading, but I definitely do recommend this book. It's a great intermediate book for the programmer who is looking to push their comfort level with Common Lisp to the next level or for those wanting to learn how a condition system is implemented in general.
Trustpilot
1 month ago
1 month ago