Common Lisp에서 이름 있는 매개변수를 키워드 매개변수라고 해요.
키워드 매개변수는 람다 리스트에서 &key 람다 리스트 키워드로 지정해요. 키워드 매개변수는 필수가 아니고, 기본값을 가질 수 있으며, 매개변수에 인자가 전달되었는지에 따라 참 또는 거짓이 되는 supplied-p 매개변수를 지정할 수도 있어요.
(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의 "Mixing Different Parameter Types" 섹션을 참고해요.