GNU bug report logs -
#56217
26.3; Elisp manual: Document keyword parameters to a function (lambda list)
Previous Next
To reply to this bug, email your comments to 56217 AT debbugs.gnu.org.
Toggle the display of automated, internal messages from the tracker.
Report forwarded
to
bug-gnu-emacs <at> gnu.org
:
bug#56217
; Package
emacs
.
(Sat, 25 Jun 2022 16:28:02 GMT)
Full text and
rfc822 format available.
Acknowledgement sent
to
Drew Adams <drew.adams <at> oracle.com>
:
New bug report received and forwarded. Copy sent to
bug-gnu-emacs <at> gnu.org
.
(Sat, 25 Jun 2022 16:28:02 GMT)
Full text and
rfc822 format available.
Message #5 received at submit <at> debbugs.gnu.org (full text, mbox):
Searching the Index of the Elisp manual for "keyword", I don't see any
entries that help you get to doc about keyword parameters in a lambda
list. (I mean the use of a keyword such as :keymap with
`define-minor-mode', not a description of things like `&rest'.)
Please add some index entries for this.
What's more, I don't even find any presentation in the manual about
keyword parameters, except for the mention more or less in passing of
some specific keyword parameters in node `Defining Minor Modes'. Please
add a description. Users should get info about how
actual arguments are processed - e.g., in what order, when for example,
optional and keyword args are both accepted by a function.
(It's possible that there _is_ some such specification/explanation of
what keyword parameters are, and how they're processed - e.g., in what
order, but I didn't find any.)
Keyword args are particular, in that to pass one you pass _two_ Lisp
values: first the keyword symbol and then the value for that keyword.
That isn't the case for other arguments.
In addition there's the question of whether supplied keyword args
are included in those accumulated for the &rest arg.
See Common Lisp for how it handles this:
Next, any keyword parameters are processed. For this purpose the
same arguments are processed that would be made into a list for a
rest parameter. (Indeed, it is permitted to specify both &rest and
&key. In this case the remaining arguments are used for both
purposes; that is, all remaining arguments are made into a list
for the &rest parameter and are also processed for the &key
parameters. This is the only situation in which an argument is
used in the processing of more than one parameter specifier.)
-- Common Lisp The Language (2), section 5.2.2, Lambda-Expressions
Whatever the Elisp way of handling keyword parameters might be,
it should be clearly specified somewhere in the manual. So far,
all I've found it a bit of hand-waving.
In GNU Emacs 26.3 (build 1, x86_64-w64-mingw32)
of 2019-08-29
Repository revision: 96dd0196c28bc36779584e47fffcca433c9309cd
Windowing system distributor `Microsoft Corp.', version 10.0.19044
Configured using:
`configure --without-dbus --host=x86_64-w64-mingw32
--without-compress-install 'CFLAGS=-O2 -static -g3''
This bug report was last modified 2 years and 262 days ago.
Previous Next
GNU bug tracking system
Copyright (C) 1999 Darren O. Benham,
1997,2003 nCipher Corporation Ltd,
1994-97 Ian Jackson.