> 1 <

Автор Сообщение

Яков Замир Кацман (нью)

Members


Статус

15 сообщений

Где: Russia
Род занятий:
Возраст:

#7798   2017-11-13 00:09 GMT+3 часа(ов)      
;;CL-USER 1 > 
;;Condition definition
(define-condition evenp-error (error)
((text :initarg :text :reader text)))
;;EVENP-ERROR
 
CL-USER 2 >
;;Define function that prints odd number
(defun filter-evenp (lst)
(dolist (x lst)
(restart-case
(if (not (evenp x))
(print x)
(error 'evenp-error :text x))
(skip-evenp () nil))))
;;FILTER-EVENP
 
;;CL-USER 3 >
;;Restart function
(defun skip-evenp (c) (invoke-restart 'skip-evenp))
;;SKIP-EVENP
 
;;CL-USER 4 >
;;handler case
(handler-bind ((evenp-error #'skip-evenp))
(filter-evenp (list 1 2 3 4 5)))
 
;;1
;;3
;;5
;;NIL
 
;;CL-USER 5 >
 
;;[1] https://stackoverflow.com/questions/36178141/common-lisp-exception-handling-condition-and-restart
;;[2] http://www.gigamonkeys.com/book/beyond-exception-handling-conditions-and-restarts.html
;;[3] http://wiki.c2.com/?CommonLispConditionSystem
;;[4] https://www.tutorialspoint.com/lisp/lisp_error_handling.htm
;;[5] http://www.nhplace.com/kent/Papers/Condition-Handling-2001.html
;;[6] http://schemer.in/aeh.html
;;[7] https://z0ltan.wordpress.com/2016/08/06/conditions-and-restarts-in-common-lisp/
> 1 <


Онлайн :

0 пользователь(ей), 26 гость(ей) :




Реклама на сайте: