cl-cont
cl-cont - A Common Lisp Delimited Continuations Library をちょっとさわってみた。
cl-cont は Common Lisp の継続ライブラリ。
(defvar *save*) (defun p1 () (print 1)) (defun p2 () (print 2)) (defun p3 () (print 3)) (defun f () (with-call/cc (let/cc cc (ff cc)))) (defun ff (ret) (with-call/cc (let/cc cc (setf *save* cc) (funcall ret (p1))) (let/cc cc (setf *save* cc) (funcall ret (p2))) (let/cc cc (setf *save* cc) (funcall ret (p3))))) CL-USER> (f) 1 ;; print で印字されたもの 1 CL-USER> (funcall *save* 9) 2 ;; print で印字されたもの 2 CL-USER> (funcall *save* 9) 3 ;; print で印字されたもの 3 CL-USER> (funcall *save* 9) 9 CL-USER> (funcall *save* 9) 9