GNU Info

Info Node: (elisp)Macros

(elisp)Macros


Next: Customization Prev: Functions Up: Top
Enter node , (file) or (file)node

Macros
******

   "Macros" enable you to define new control constructs and other
language features.  A macro is defined much like a function, but instead
of telling how to compute a value, it tells how to compute another Lisp
expression which will in turn compute the value.  We call this
expression the "expansion" of the macro.

   Macros can do this because they operate on the unevaluated
expressions for the arguments, not on the argument values as functions
do.  They can therefore construct an expansion containing these
argument expressions or parts of them.

   If you are using a macro to do something an ordinary function could
do, just for the sake of speed, consider using an inline function
instead.  Note: Inline Functions.

Simple Macro
A basic example.
Expansion
How, when and why macros are expanded.
Compiling Macros
How macros are expanded by the compiler.
Defining Macros
How to write a macro definition.
Backquote
Easier construction of list structure.
Problems with Macros
Don't evaluate the macro arguments too many times.
Don't hide the user's variables.

automatically generated by info2www version 1.2.2.9