В Common Lisp (в частности, SBCL в моем случае), обычно определяют исключения (известные как "условия"), используя define-condition макро.Это определяет условие глобально, в текущем пакете.
Есть ли способ определить условие локально в определенной области?Или, в качестве альтернативы, каким-то другим идиоматическим способом преждевременного выхода из области со значением без загрязнения глобального пространства имен?
(with-conditions
(block
(...)
(prematurely-exit-block-with some-data)
(...))
(when-condition-happens (some data) ...))