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 18.104.22.168