Often, I want to refer to the place I'm setting with an anaphora. The code to do this is as follows:
(defmacro ssetf (&rest bindings)
"Anaphoric setf that binds it to a symbol-macro evaluating to name."
`(progn
,@(loop for (name val &rest _) on bindings by #'cddr
collect
`(symbol-macrolet ((it ,name))
(setf it ,val)))))
Often, I want to refer to the place I'm setting with an anaphora. The code to do this is as follows: