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.
D**N
Don't just "Try", beyond exceptions
Spoken Language shapes our minds, computer languages shape our software. Lisp has sired more dialects and implementations than any other language and continues to be the test bed of innovation and source of ideas for language design and general computing. Common Lisp, a key industrial strength dialect, possesses a condition system that goes beyond "try/catch" style exceptions with innovations like restarts. Understanding that system and its practical use changes the way one designs and develops software regardless of language.Michal Herda's command of the subject and his experience adds to that understanding. He holds hands with the reader to develop a version of the condition system using the base language step by step to allow the reader a deeper more intimate grasp, ie. to shape the reader's mind and future software projects.I highly recommend this work, as working through it page by page has already helped me on my latest project.
A**R
Restarts !!
I have been programming in Common Lisp, in anger, for more than 30 years. I try to learn something new every day. But this book covered so many holes in my knowledge, about what is a very important facet of Lisp programming. This book deserves to be right up there with the best of the Lisp References, alongside AMOP, Keene's CLOS, SICP, CLTL2, and many of the other beefy books about Lisp.Beginners get introduced gently enough to the topics. But for me, it was Section 2 and onwards that gave me something to really chew on. Highly recommended!
Trustpilot
2 weeks ago
1 day ago