Elisp: Lisp Special Form
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: