Common Lispでは、名前付き仮引数のことをキーワード仮引数と呼びます。
キーワード仮引数は、ラムダリストの中で&keyというラムダリストキーワードによって指定します。キーワード仮引数は必須ではなく、デフォルト値を持たせることもでき、さらに「supplied-p仮引数」を指定することもできます。この仮引数は、引数が渡されたかどうかに応じてtrueまたはfalseになります。
(defun keyword-parameter (&key (arg -1) arg)
(keyword-parameter) ; => -1
(keyword-parameter :arg 13) ; => 13
関数を呼び出すときの引数では、キーワード仮引数はその「キーワード名」で指定します。キーワード名は、デフォルトでは仮引数名をキーワードシンボルにしたものです(つまり、キーワード仮引数nameのキーワード名は:nameです)。仮引数名だけを書く代わりに、キーワード名と仮引数名のリストを書くことで、キーワード仮引数に別の名前を指定することもできます。
(defun other-keyword-name (&key ((other-name arg))) (list arg))
(other-keyword-name 'other-name 5) ; => (5)
複数の種類の仮引数を他の種類の仮引数(オプション仮引数とキーワード仮引数)と組み合わせることはできますが、問題が起きやすく、慎重に行う必要があります。Practical Common Lispの「異なる種類の仮引数を混ぜる」の節を参照してください。