>>870
こんなんじゃ駄目?

(defmacro set-eval (place value)
(let ((x (eval place)))
`(setf ,x ,value)))

(let ((x 0) (y 0))
(set-eval (if t 'x 'y) 3)
x)