Was bedeutet defmacro in Lisp?

Antwort vom

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 Lisp-Code - dieser erzeugte Code wird dann später ausgewertet Beispiel: ```lisp (defmacro square (x) `(* ,x ,x)) ``` Aufruf: ```lisp (square 5) ``` Makroexpansion ergibt sinngemäß: ```lisp (* 5 5) ``` Wichtig: - Funktionen arbeiten auf **Werten** - Makros arbeiten auf **Code** `defmacro` wird also verwendet, um neue Sprachkonstrukte oder bequeme Syntax in Lisp zu bauen.

Kategorie: Technologie Tags: Defmacro Lisp Makro

Verwandte Fragen

Was ist ein Symbol in Lisp?

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?

Ja. 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. Einf...

Excel-Makro: Spalten E:G per Button ein- und ausblenden?

Ja. Verwende dieses Makro und weise es dem Button zu: vba Sub SpaltenEGUmschalten() Columns("E:G").EntireColumn.Hidden = Not Columns("E").EntireColumn.Hidden End Sub So funktio...

Excel-Makro: Im Bereich B10:B20, wenn der IndentLevel in Spalte B = 1 ist, dann in dieser Zeile in B:O oben eine dünne Rahmenlinie setzen?

vba Sub RahmenObenBeiIndent1() Dim ws As Worksheet Dim c As Range Set ws = ActiveSheet For Each c In ws.Range("B10:B20") If c.IndentLevel = 1 Then With ws.Range(ws.Cells(c.Row, &q...

Kann man mit einem Excel-Makro abfragen, ob und wie stark ein Zellinhalt eingerückt ist?

Ja. In Excel-VBA kannst du die Einrückung einer Zelle über IndentLevel abfragen. Beispiel: vba Sub EinrueckungPruefen() Dim wert As Long wert = Range("A1").IndentLevel MsgB...

Welches Handy hatte die größte Makrovergrößerung?

Das größte Makro-“Vergrößerungs”-Versprechen bei einem Smartphone hatte sehr wahrscheinlich das realme GT 2 Pro mit einer Mikroskop-Kamera und bis zu 40x Vergrö&...

Welches Handy hat eine Lupenkamera?

Handys mit „Lupenkamera“ gibt es vor allem in zwei Varianten: 1. Makrokamera – für sehr nahe Aufnahmen von kleinen Dingen 2. Periskop-/Telekamera mit Makro – wirkt oft w...

Lässt sich die Excel-Warnung „Pivot enthält schon Daten“ per Makro ausschalten?

Ja. Die Meldung lässt sich im Makro meist mit deaktivierten Excel-Warnungen unterdrücken: vba Application.DisplayAlerts = False ' Pivot-Aktion hier, z. B. Aktualisieren / Ersetzen / L...

Kann man mit einem Excel-Makro den Filter einer Pivot-Tabelle ändern?

Ja. Mit einem Excel-Makro (VBA) kannst du den Filter einer Pivot-Tabelle ändern, zum Beispiel: Berichtsfilter setzen einzelne Pivot-Felder filtern bestimmte Elemente ein-/ausblenden Datums- oder...

Excel-Makro: Einfärbung der Zellen B10:D15 aufheben?

Ja. In VBA z. B. so: vba Range("B10:D15").Interior.Pattern = xlNone Alternativ: vba Range("B10:D15").Interior.ColorIndex = xlColorIndexNone Falls auch andere Formatierungen e...