[Small-cl-src] Re: What would var+++ be in CL?
Lars Brinkhoff
lars at nocrew.org
Wed Jul 6 18:15:27 UTC 2005
Ingvar <ingvar at cathouse.bofh.se> 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))))
More information about the Small-cl-src
mailing list