Name: Anonymous 2012-02-27 10:19
(defmacro call/cc (f)
(let ((l (gensym))
(r (gensym))
(v (gensym)))
`(let ((,r nil))
(tagbody (setf ,r (funcall ,f (lambda (,v)
(setf ,r ,v)
(go ,l))))
,l)
,r)))It works in some cases but fails on
(let ((k nil)) (call/cc (lambda (c) (setf k c))) (print 123) (funcall k nil))How do I fix it?