CLIM mail archive


Re: color definitions

Oops - one of my local macros slipped into my last post:

(defmacro with-collection ((&optional (fn 'collect)) &body body)
  "Within the body each call to (collect x) will collect x in a list.
  The FN argument defaults to COLLECT, but you can rename it if you want.
  Example: (with-collection () (collect 1) (collect (+ 1 1))) => (1 2)"
  ;; Note: in Lucid, nreverse at end is faster than tconc structures.
  (let ((var (gensym "COLLECT")))
    `(let ((,var nil))
      (flet ((,fn (x) (push x ,var)))
	(declare (inline ,fn))
	(nreverse ,var)))))

Main Index | Thread Index