Mit Emacs Lisp-Makros können Sie neue Steuerelementkonstrukte und andere Sprachfunktionen definieren. Ein Makro wird ähnlich wie eine Funktion definiert, aber anstatt zu erklären, wie ein Wert berechnet wird, wird angegeben, wie ein anderer Lisp-Ausdruck berechnet wird, der wiederum zur Berechnung des Werts ausgewertet wird. Wir nennen diesen Ausdruck die "Erweiterung" des Makroaufrufs. Der Makroaufruf wird zuerst erweitert und dann ausgewertet, wobei der Wert dieser Auswertung zurückgegeben wird.