GNU bug report logs -
#32284
special form documentation
Previous Next
Full log
View this message in rfc822 format
Nicholas Drozd writes:
> 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<))
Hi Nicholas,
Thank you for the note. As far as I can see you are correct about
the
method of implementation being macros. But that does not exclude
them
from being special forms, as from my knowledge a special form is
simply
an expression that does not follow the formal rules for the
implementation of a function.
Most lisps define their special forms from a small subset of
primitives
such as lambda and macros, of which these apply.
Anybody else have any input?
--
Brett M. Gilio
Free Software Foundation, Member
https://parabola.nu | https://emacs.org
This bug report was last modified 6 years and 304 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.