GNU Info

Info Node: (elisp)Special Forms

(elisp)Special Forms


Next: Autoloading Prev: Macro Forms Up: Forms
Enter node , (file) or (file)node

Special Forms
-------------

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

   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.

`and'
     Note: Combining Conditions

`catch'
     Note: Catch and Throw

`cond'
     Note: Conditionals

`condition-case'
     Note: Handling Errors

`defconst'
     Note: Defining Variables

`defmacro'
     Note: Defining Macros

`defun'
     Note: Defining Functions

`defvar'
     Note: Defining Variables

`function'
     Note: Anonymous Functions

`if'
     Note: Conditionals

`interactive'
     Note: Interactive Call

`let'
`let*'
     Note: Local Variables

`or'
     Note: Combining Conditions

`prog1'
`prog2'
`progn'
     Note: Sequencing

`quote'
     Note: Quoting

`save-current-buffer'
     Note: Current Buffer

`save-excursion'
     Note: Excursions

`save-restriction'
     Note: Narrowing

`save-window-excursion'
     Note: Window Configurations

`setq'
     Note: Setting Variables

`setq-default'
     Note: Creating Buffer-Local

`track-mouse'
     Note: Mouse Tracking

`unwind-protect'
     Note: Nonlocal Exits

`while'
     Note: Iteration

`with-output-to-temp-buffer'
     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 version 1.2.2.9