GNU bug report logs - #32284
special form documentation

Previous Next

Package: emacs;

Reported by: Nicholas Drozd <nicholasdrozd <at> gmail.com>

Date: Thu, 26 Jul 2018 23:35:02 UTC

Severity: normal

Done: Eli Zaretskii <eliz <at> gnu.org>

Bug is archived. No further changes may be made.

Full log


View this message in rfc822 format

From: Brett Gilio <brettg <at> posteo.net>
To: Nicholas Drozd <nicholasdrozd <at> gmail.com>
Cc: 32284 <at> debbugs.gnu.org
Subject: bug#32284: special form documentation
Date: Thu, 26 Jul 2018 19:04:32 -0500
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.