我已经阅读了common lisp“Practical Common Lisp”异常处理章节好几天了,但是我现在对示例和解释感到很困惑,同时我尝试编写一些测试示例,但它没有像我一样工作预期,以下是我的测试样本。
条件定义
(define-condition evenp-error (error) ((text :initarg :text :reader text)))
定义打印奇数的函数
(defun filter-evenp (lst) (dolist (x lst) (if (not (evenp x)) (print x) (error 'evenp-error :text x))))
重启功能
(defun skip-evenp (c) (invoke-start 'skip-evenp))
重启案例
(restart-case (filter-evenp (list 1 2 3 4 5)) (skip-evenp () nil))
我要做的就是打印所有奇数并跳过偶数错误,我的样本有什么问题?有人帮忙吗?提前谢谢了!!