Recursive Condition
This little trick hit me when I was perusing PCL. Specifically, the when selector.
(defun rec-cond (key) (cond ((eq key :before) (format nil "executing before" )) ((eq key :during) (format nil "executing during" )) ((eq key :after) (format nil "executing after" )) ((eq key :set-up) (rec-cond :before)) ((eq key :init) (rec-cond :before)) ((eq key :teardown) (rec-cond :after)) (t (error (format nil "unknown command: ~A" key))))
This overloads keyword symbols so that you more than one keyword can execute the same code. Read the rest of this entry »
Posted by gutzofter