Next: Autoloading, Previous: Macro Forms, Up: Forms [Contents][Index]
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 SXEmacs Lisp with a reference to where each is described.
and
catch
see Catch and Throw
cond
see Conditionals
condition-case
see Handling Errors
defconst
defmacro
see Defining Macros
defun
defvar
function
if
see Conditionals
interactive
see Interactive Call
let
let*
see Local Variables
or
prog1
prog2
progn
see Sequencing
quote
see Quoting
save-current-buffer
see Excursions
save-excursion
see Excursions
save-restriction
see Narrowing
save-selected-window
see Excursions
save-window-excursion
setq
setq-default
unwind-protect
see Nonlocal Exits
while
see Iteration
with-output-to-temp-buffer
Common Lisp note: here are some comparisons of special forms in SXEmacs Lisp and Common Lisp.
setq
,if
, andcatch
are special forms in both SXEmacs Lisp and Common Lisp.defun
is a special form in SXEmacs Lisp, but a macro in Common Lisp.save-excursion
is a special form in SXEmacs Lisp, but does not 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 SXEmacs Lisp (which doesn’t have multiple values).
Next: Autoloading, Previous: Macro Forms, Up: Forms [Contents][Index]