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.
andcatchsee Catch and Throw
condsee Conditionals
condition-casesee Handling Errors
defconstdefmacrosee Defining Macros
defundefvarfunctionifsee Conditionals
interactivesee Interactive Call
letlet*see Local Variables
orprog1prog2prognsee Sequencing
quotesee Quoting
save-current-buffersee Excursions
save-excursionsee Excursions
save-restrictionsee Narrowing
save-selected-windowsee Excursions
save-window-excursionsetqsetq-defaultunwind-protectsee Nonlocal Exits
whilesee Iteration
with-output-to-temp-bufferCommon Lisp note: here are some comparisons of special forms in SXEmacs Lisp and Common Lisp.
setq,if, andcatchare special forms in both SXEmacs Lisp and Common Lisp.defunis a special form in SXEmacs Lisp, but a macro in Common Lisp.save-excursionis a special form in SXEmacs Lisp, but does not exist in Common Lisp.throwis 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]