I have learnt a new trick these days. Did you know that you can declare an argument as a special variable? Quoting Hyperspec.

Each required parameter is specified by a parameter variable var. var is bound as a lexical variable /unless it is declared special/.

It seems to work also for optional and keyword arguments, but Hyperspec does not mention it explicitly. For example, yo can do:

(defvar *variable*)
(defun foo () *variable*)
(defun foobar (&optional *variable*)
(foo))


I have learnt a new trick these days. Did you know that you can declare an argument as a special variable? Quoting Hyperspec:

Each required parameter is specified by a parameter variable var. var is bound as a lexical variable unless it is declared special.

It seems to work also for optional and keyword arguments, but Hyperspec does not mention it explicitly. For example, yo can do:

(defvar *variable*)
(defun foo () *variable*)
(defun foobar (&optional *variable*)
(foo))