The Elisp manual section on Special Forms (10.2.7) lists around
two dozen
special forms, but two of them aren't special forms.
* `lambda', it turns out, is not a special form, but a macro
that wraps
itself in a call to the special form `function'. (The
documentation for
`lambda' refers to it as "self-quoting"; this might be better
changed to
"self-evaluating".)
* `track-mouse' isn't a special form, but a macro wrapper around
the
primitive function `internal--track-mouse', which isn't a
special form
either. (Section 29.15 on Mouse Tracking also inaccruately
refers to
`track-mouse' as a special form.)
On the other hand, the special form `inline' is not listed in
the Special
Forms section.
A list of all special forms can be gotten with
(let (special-forms)
(mapatoms
(lambda (sym)
(when (special-form-p sym)
(push sym special-forms))))
(sort special-forms #'string<))