From lars at nocrew.org Wed Jul 6 18:15:27 2005 From: lars at nocrew.org (Lars Brinkhoff) Date: Wed, 06 Jul 2005 20:15:27 +0200 Subject: [Small-cl-src] Re: What would var+++ be in CL? References: Message-ID: <85fyuru7gg.fsf@junk.nocrew.org> Ingvar writes: > ;;; Possibly a tad naive, but... > (defmacro post-incf (form &optional (increment 1)) > (let ((value (gensym "POST-INCF"))) > `(let ((,value ,form)) > (prog1 ,value (setf ,form (+ ,value ,increment)))))) ;;; Possibly a tad less naive... (defmacro post-incf (form &optional (increment 1) &environment env) (with-gensyms (result) (multiple-value-bind (temps vals vars writer reader) (get-setf-expansion form env) `(let* (,@(mapcar #'list temps vals) (,result ,reader) (,(first vars) (+ ,result ,increment))) ,writer ,result))))