1.0 KiB
1.0 KiB
Lisp
Variablen
Globale Variablen
defparameter
defparameter: Definiert eine globale Variable und weist ihr sofort einen Wert zu. Ein erneutes Laden überschreibt den Wert.
(defparameter *Variable* Wert)
Beispiel
(defparamter *a* 10)
defparameter *name* "Otto")
(+ *a* *b*)
defvar
defvar: Definiert eine globale Variable, setzt den Anfangswert aber nur, wenn sie noch keinen Wert hat. Überschreibt bestehende Werte beim Neuladen nicht.
(defvar *Variable* Wert )
Beispiel
(defvar *b* 101)
setq / setf
setq / setf: Ändert den Wert einer bereits existierenden Variablen oder erzeugt (in manchen Lisp-Dialekten) implizit eine globale Variable, was jedoch unsauber ist. setf ist der universelle Zuweisungsoperator.
setq - einfache Variablenzuweisung
setf - allgemeine Zuweisung
setf kann nicht nur Variablen setzen, sondern praktisch alles, wofür Lisp eine passende Schreibstelle (place) kennt:
(setf mein-wert 100)