Ein Symbol in Lisp ist ein grundlegender Datentyp, der meist einen Namen darstellt. Beispiele: x hello + Ein Symbol kann in Lisp verschiedene Rollen haben: Variablenname Funktionsname Schlüssel...
Kann man in Lisp in einem Macro ein neues Macro erstellen?
Antwort vomJa. In Lisp kann ein Macro während der Expansion Code erzeugen, der wiederum ein neues Macro definiert. Das ist grundsätzlich möglich, weil Macros einfach Code in Code umwandeln. Einfaches Beispiel in Common Lisp: ```lisp (defmacro define-simple-macro (name text) `(defmacro ,name () ,text)) ``` Verwendung: ```lisp (define-simple-macro hallo "Hallo Welt") ``` Dadurch entsteht effektiv: ```lisp (defmacro hallo () "Hallo Welt") ``` Wichtig: - Das äußere Macro erzeugt nur die Definition des inneren Macros. - Ob das neue Macro sofort verfügbar ist, hängt vom Lisp-System und vom Zeitpunkt von Compile-/Load-/Eval-Phase ab. - In Common Lisp ist dabei oft `eval-when` relevant. Kurz: Ja, ein Macro kann ein anderes Macro erzeugen bzw. definieren.
Verwandte Fragen
Was bedeutet defmacro in Lisp?
In Lisp bedeutet defmacro das Definieren eines Makros. Kurz: defun definiert eine Funktion defmacro definiert ein Makro Ein Makro: bekommt unevaluierte Code-Formen als Eingabe erzeugt daraus neuen L...
Muss ich diesen Broadcast jedes Mal neu erstellen?
Nein. Einen Broadcast musst du in der Regel nicht jedes Mal komplett neu erstellen. Üblich ist: einmal anlegen später bearbeiten / duplizieren / erneut senden nur neu erstellen, wenn Inhalt...