Was bedeutet: "defparameter-Variablen werden beim Neuladen des Codes mit einem neuen Initialwert geändert, defvar-Variablen nicht"?

Antwort vom

Das bedeutet in Common Lisp: - **`defparameter`**: Setzt die Variable **bei erneutem Laden des Codes wieder neu** auf den angegebenen Startwert. - **`defvar`**: Setzt die Variable **nur dann**, wenn sie **noch keinen Wert hat**. Beim Neuladen bleibt der alte Wert erhalten. Beispiel: ```lisp (defparameter *x* 10) (defvar *y* 10) ``` Dann änderst du zur Laufzeit: ```lisp (setf *x* 99) (setf *y* 99) ``` Und lädst den Code erneut: ```lisp (defparameter *x* 10) ; wird wieder 10 (defvar *y* 10) ; bleibt 99 ``` Kurz: - **`defparameter` = immer neu initialisieren** - **`defvar` = nur einmal initialisieren** Die Aussage meint also den Unterschied beim **Reloaden** von Lisp-Code.