Tracks
/
Common Lisp
Common Lisp
/
Lehrplan
/
Optionale Parameter
Op

Optionale Parameter in Common Lisp

2 Übungen

Über Optionale Parameter

Ein optionaler Parameter wird durch das Lambda-Listen-Schlüsselwort &optional in einer Lambda-Liste gekennzeichnet. Optionale 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 optional-parameter (&optional (arg -1)) arg)
(optional-parameter)    ; => -1
(optional-parameter 13) ; => 13

Optionale Parameter müssen nach den erforderlichen Parametern, aber vor benannten oder Restparametern stehen. Argumente werden zuerst an erforderliche Parameter gebunden, dann an optionale Parameter und schließlich an Restparameter und benannte Parameter.

(defun req-and-opt (req &optional (opt -1)) (list req opt)
(req-and-opt 1)    ; => (1 -1)
(req-and-opt 1 13) ; => (1 13)

Mehrere Parametertypen können zwar mit anderen Parametertypen kombiniert werden (optionale und Schlüsselwortparameter), aber das kann problematisch sein und sollte mit Bedacht erfolgen. Sieh dir den Abschnitt „Verschiedene Parametertypen mischen“ in Practical Common Lisp an.

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

Lerne Optionale Parameter

Das Üben ist gesperrt

Schalte 1 weitere Übung frei, um Optionale Parameter zu üben