Author: smokeink. Date 2018-08-24 09:33:06, views: 228, Raw

(defun make-collector () (let ((none '#:none)) (declare (dynamic-extent none)) (cl-utilities:with-collectors (buffer) (return-from make-collector (lambda (&optional (data none)) (unless (eq data none) (buffer data)) buffer))))) (setf a (make-collector)) (funcall a 2) (funcall a 3) (funcall a 4) (funcall a) ; ==> (2 3 4) ; how to delete element 3 from a's buffer/collector ?