Tracks
/
Common Lisp
Common Lisp
/
Lehrplan
/
Schlüsselwortparameter
Sc

Schlüsselwortparameter in Common Lisp

1 Übung

Über Schlüsselwortparameter

In Common Lisp heißen benannte Parameter Keyword-Parameter.

Keyword-Parameter werden in einer Lambda-Liste durch das Lambda-Listen-Schlüsselwort &key gekennzeichnet. Keyword-Parameter sind nicht erforderlich, können einen Standardwert haben und außerdem einen „Supplied-p-Parameter“ angeben, der „wahr“ oder „falsch“ ist, je nachdem, ob ein Argument für den Parameter übergeben wurde.

(defun keyword-parameter (&key (arg -1) arg)
(keyword-parameter)         ; => -1
(keyword-parameter :arg 13) ; => 13

In den Argumenten an eine Funktion werden die Keyword-Parameter durch ihren „Keyword-Namen“ angegeben, der standardmäßig eine Keyword-Symbol-Version des Parameternamens ist (d. h. der Keyword-Parameter name hat den Keyword-Namen :name). Es ist möglich, einen anderen Namen für den Keyword-Parameter anzugeben, indem man statt nur des Parameternamens eine Liste aus Keyword-Namen und Parameternamen verwendet:

(defun other-keyword-name (&key ((other-name arg))) (list arg))
(other-keyword-name 'other-name 5) ; => (5)

Mehrere Parametertypen lassen sich zwar mit anderen Parametertypen kombinieren (optionale und Keyword-Parameter), doch das kann problematisch sein und sollte sorgfältig gemacht werden. Siehe dazu den Abschnitt "Mixing Different Parameter Types" in Practical Common Lisp.

Über GitHub bearbeiten Der Link öffnet sich in einem neuen Fenster oder Tab

Lerne Schlüsselwortparameter