(lispref.info)Special Forms

Next: Autoloading Prev: Macro Forms Up: Forms

Special Forms

   A "special form" is a primitive function specially marked so that
its arguments are not all evaluated.  Special forms define control
structures or perform variable bindings--things which functions cannot

   Each special form has its own rules for which arguments are evaluated
and which are used without evaluation.  Whether a particular argument is
evaluated may depend on the results of evaluating other arguments.

   Here is a list, in alphabetical order, of all of the special forms in
Emacs Lisp with a reference to where each is described.

     Note: Combining Conditions.

     Note: Catch and Throw.

     Note: Conditionals.

     Note: Handling Errors.

     Note: Defining Variables.

     Note: Defining Macros.

     Note: Defining Functions.

     Note: Defining Variables.

     Note: Anonymous Functions.

     Note: Conditionals.

     Note: Interactive Call.

     Note: Local Variables.

     Note: Combining Conditions.

     Note: Sequencing.

     Note: Quoting.

     Note: Excursions.

     Note: Narrowing.

     Note: Window Configurations.

     Note: Setting Variables.

     Note: Creating Buffer-Local.

     Note: Nonlocal Exits.

     Note: Iteration.

     Note: Temporary Displays.

     Common Lisp note: here are some comparisons of special forms in
     GNU Emacs Lisp and Common Lisp.  `setq', `if', and `catch' are
     special forms in both Emacs Lisp and Common Lisp.  `defun' is a
     special form in Emacs Lisp, but a macro in Common Lisp.
     `save-excursion' is a special form in Emacs Lisp, but doesn't
     exist in Common Lisp.  `throw' is a special form in Common Lisp
     (because it must be able to throw multiple values), but it is a
     function in Emacs Lisp (which doesn't have multiple values).

automatically generated by info2www