········@tartarus.uchicago.edu writes:
[Code to concatenate strings and symbols deleted]
As far as I can tell, the functionality of your INSIST macro is implemented by
a CommonLisp built-in, ASSERT. The ASSERT macro also has some other nice
features, in that it allows you to specify some SETF places for its second
argument, e.g.
(defun feed-horse (horse barn)
(assert (horse-in-barn horse barn)
((barn-door-closed? barn)
;; More SETF places go here ...
)
"The horse has escaped!")
;; Code to actually feed horse goes here ...
)
The debugger then presents these to the user so she can try to recover when
the assertion fails. Thus:
(feed-horse *trigger* *empty-barn*)
ERROR: The horse has escaped!
Options:
A: Specify a new value for (BARN-DOOR-CLOSED? BARN)
B: Exit to top level
--
John Burger ····@mitre.org
"You ever think about .signature files? I mean, do we really need them?"
- alt.andy.rooney