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 ?