(defmacro add-key-value (key value alist) `(push (cons ,key ,value) ,alist)) (defparameter *a* nil) ; => NIL (add-key-value "foo" "bar" *a*) ; => (("foo" . "bar")) (add-key-value "baz" "qux" *a*) ; => (("baz" . "qux") ("foo" . "bar"))