Emacs Lisp: Lisp Special Form

By Xah Lee. Date: .

Normally, arguments passed to a function are evaluated, in order. In elisp, this is called standard evaluation strategy.

However, for some function, evaluating arguments in order does not make sense. For example, conditional construct if, or local variable construct let. These functions, are said to have non-standard evaluation strategy.

Of functions that are non-standard evaluation, they are either macro or special form.

Macros are defined by lisp expressions with defmacro. User can define them.

Special Forms are written in C.

Example of special forms:

  1. and
  2. or
  3. catch
  4. if
  5. while
  6. cond
  7. condition-case
  8. defconst
  9. defvar
  10. let
  11. let*
  12. prog1
  13. prog2
  14. progn
  15. setq
  16. setq-default
  17. interactive
  18. lambda
  19. quote
  20. function
  21. save-current-buffer
  22. save-excursion
  23. save-restriction
  24. track-mouse
  25. unwind-protect

(info "(elisp) Macros")

(info "(elisp) Special Forms")

Lisp Symbol

Lisp Basics


Lisp Data Structure


Lisp Symbol

Lisp Misc

Working with Elisp