From: Jean Louis <bugs@gnu.support>
To: Drew Adams <drew.adams@oracle.com>
Cc: "Rudolf Adamkovič" <salutis@me.com>,
"help-gnu-emacs@gnu.org" <help-gnu-emacs@gnu.org>
Subject: Re: [External] : Re: How to make M-x TAB not work on (interactive) declaration?
Date: Tue, 17 Jan 2023 08:35:03 +0300 [thread overview]
Message-ID: <Y8Yzh7xGQDCqRkpJ@protected.localdomain> (raw)
In-Reply-To: <CO6PR10MB5473E554BE84BF9CC2E9AF6DF3C69@CO6PR10MB5473.namprd10.prod.outlook.com>
* Drew Adams <drew.adams@oracle.com> [2023-01-17 05:21]:
> > > The use of `apply', pointed out by Anders, speaks
> > > directly to "any number of arguments". It applies
> > > a function (e.g. `+') to "any number of arguments",
> > > which are passed as a list.
> >
> > Any number means also no argument? To me that is not clear.
>
> That's why I pointed out that _zero is a number_.
That is clear.
> A zero number of args means zero args, which
> means no args.
Aha that is what you mean. Sounds like practical joke with function
descriptions. Though that is not what is expressed like:
* is a built-in function in ‘C source code’.
(* &rest NUMBERS-OR-MARKERS)
Return product of any number of arguments, which are numbers or
markers.
Product of any number of arguments when there are no arguments can't
be 1 -- so function description is logically justified with your
statement, but not consistent, I can't be sure if author intended it
that way how you justify it, due to inconsistency.
> > Any number of arguments is to me that it must be at least one
> > argument, not no argument.
>
> Zero is a number. I have zero Ferraris. :-(
Multiply your Ferraris and tell me if you get one in the garage.
> > * is a built-in function in ‘C source code’.
> > (* &rest NUMBERS-OR-MARKERS)
> > Return product of any number of arguments, which are numbers or markers.
> >
> > But without having arguments, the product is one,
> > which contradicts multiplication how I know it.
>
> Yes, it's taking a shortcut, supposing that you
> think of a "product" of one arg and a "product"
> of zero args: (* N) -> N, (*) -> 0
Not zero but: (*) ➜ 1 -- we are back to Ferrari.
I don't get it.
> Imagine that you wanted to define a "product" function that works
> with any number of args. What would _you_ define as its behavior
> (return value) for the zero-args case? And what would you use for
> the single-arg case?
I expect (*) to tell me that it is error, that arguments are
missing. I learned multiplication in school, we never had impossible
situation of using single argument. As number has to be multiplied by
number. Multiplication table has always 2 arguments.
The manual says like:
> -- Function: + &rest numbers-or-markers
> This function adds its arguments together. When given no
> arguments, ‘+’ returns 0.
1
but I wonder why is that explained in manual and not in docstring.
For now I can only think that it deviates from common multiplication
that requires 2 numbers for the reason to be used in Lisp functions
such as `apply' or others, just that I can't yet confirm it if that is
designed for that particular reason.
(apply '* nil) ➜ 1
--
Jean
Take action in Free Software Foundation campaigns:
https://www.fsf.org/campaigns
In support of Richard M. Stallman
https://stallmansupport.org/
next prev parent reply other threads:[~2023-01-17 5:35 UTC|newest]
Thread overview: 167+ messages / expand[flat|nested] mbox.gz Atom feed top
2023-01-07 20:53 How to make M-x TAB not work on (interactive) declaration? Jean Louis
2023-01-07 21:11 ` Ruijie Yu via Users list for the GNU Emacs text editor
2023-01-07 23:40 ` Jean Louis
2023-01-08 6:06 ` Eli Zaretskii
2023-01-08 6:19 ` Emanuel Berg
2023-01-09 4:49 ` Jean Louis
2023-01-09 6:26 ` algorithmic Lisp language (was: Re: How to make M-x TAB not work on (interactive) declaration?) Emanuel Berg
2023-01-09 19:30 ` Jean Louis
2023-01-09 19:32 ` Jean Louis
2023-01-08 6:21 ` How to make M-x TAB not work on (interactive) declaration? Jean Louis
2023-01-08 6:32 ` Emanuel Berg
2023-01-08 10:38 ` Eli Zaretskii
2023-01-08 8:34 ` Tassilo Horn
2023-01-08 11:01 ` Eli Zaretskii
2023-01-09 13:29 ` Tassilo Horn
2023-01-08 21:35 ` Jean Louis
2023-01-08 22:35 ` [External] : " Drew Adams
2023-01-09 0:24 ` Emanuel Berg
2023-01-09 19:47 ` Jean Louis
2023-01-10 23:28 ` Emanuel Berg
2023-01-13 6:21 ` (*)->1 Jean Louis
2023-01-14 12:03 ` (*)->1 Michael Heerdegen
2023-01-14 12:33 ` (*)->1 Michael Heerdegen
2023-01-15 20:18 ` [External] : Re: How to make M-x TAB not work on (interactive) declaration? Rudolf Adamkovič
2023-01-15 20:57 ` Jean Louis
2023-01-15 22:33 ` Drew Adams
2023-01-15 23:10 ` Emanuel Berg
2023-01-16 15:28 ` Jean Louis
2023-01-16 17:07 ` Drew Adams
2023-01-16 18:25 ` Jean Louis
2023-01-17 2:20 ` Drew Adams
2023-01-17 5:28 ` tomas
2023-01-17 22:20 ` Drew Adams
2023-01-18 5:14 ` tomas
2023-01-18 5:26 ` Emanuel Berg
2023-01-19 11:38 ` tomas
2023-01-19 11:51 ` Emanuel Berg
2023-01-21 14:05 ` tomas
2023-01-23 10:14 ` Robert Pluim
2023-01-23 16:44 ` Michael Heerdegen
2023-01-23 19:28 ` tomas
2023-01-18 17:27 ` Drew Adams
2023-01-18 17:32 ` tomas
2023-01-18 14:32 ` Jean Louis
2023-01-18 20:36 ` Drew Adams
2023-01-19 9:05 ` (*) -> 1 Jean Louis
2023-01-19 9:41 ` Yuri Khan
2023-01-19 12:52 ` Anders Munch
2023-01-17 5:35 ` Jean Louis [this message]
2023-01-17 15:59 ` [External] : Re: How to make M-x TAB not work on (interactive) declaration? Yuri Khan
2023-01-17 16:42 ` Jean Louis
2023-01-17 16:05 ` Michael Heerdegen
2023-01-17 16:17 ` Yuri Khan
2023-01-17 16:25 ` tomas
2023-01-17 16:55 ` (*) -> 1 Jean Louis
2023-01-17 17:52 ` Michael Heerdegen
2023-01-17 18:11 ` Óscar Fuentes
2023-01-17 18:40 ` Jean Louis
2023-01-17 19:04 ` Óscar Fuentes
2023-01-18 13:15 ` Jean Louis
2023-01-18 14:37 ` Óscar Fuentes
2023-01-18 18:17 ` [External] : " Drew Adams
2023-01-17 19:35 ` Michael Heerdegen
2023-01-17 21:12 ` Michael Heerdegen
2023-01-17 22:01 ` Óscar Fuentes
2023-01-17 23:38 ` Michael Heerdegen
2023-01-18 7:50 ` Óscar Fuentes
2023-01-18 8:37 ` tomas
2023-01-18 12:46 ` Óscar Fuentes
2023-01-18 13:44 ` Michael Heerdegen
2023-01-18 14:07 ` Óscar Fuentes
2023-01-18 16:19 ` Andreas Eder
2023-01-18 17:14 ` Óscar Fuentes
2023-01-19 8:37 ` Jean Louis
2023-01-17 18:18 ` Jean Louis
2023-01-17 11:52 ` [External] : Re: How to make M-x TAB not work on (interactive) declaration? Michael Heerdegen
2023-01-15 21:08 ` Jean Louis
2023-01-16 5:02 ` Emanuel Berg
2023-01-16 5:38 ` tomas
2023-01-16 10:10 ` Jean Louis
2023-01-16 10:41 ` Yuri Khan
2023-01-16 15:26 ` Jean Louis
2023-01-17 4:06 ` Emanuel Berg
2023-01-17 14:00 ` tomas
2023-01-17 22:43 ` Emanuel Berg
2023-01-17 16:25 ` Nick Dokos
2023-01-17 17:19 ` Jean Louis
2023-02-11 4:38 ` Ruijie Yu via Users list for the GNU Emacs text editor
2023-02-11 10:54 ` Jean Louis
2023-01-17 17:41 ` Nick Dokos
2023-01-16 7:55 ` Yuri Khan
2023-01-16 10:16 ` Jean Louis
2023-01-16 10:37 ` Yuri Khan
2023-01-16 15:35 ` Jean Louis
2023-01-16 15:59 ` Yuri Khan
2023-01-16 16:14 ` Jean Louis
2023-01-16 16:47 ` tomas
2023-01-16 17:07 ` Drew Adams
2023-01-16 18:41 ` Jean Louis
2023-01-16 10:51 ` Anders Munch
2023-01-16 15:38 ` Jean Louis
2023-01-16 17:40 ` Andreas Eder
2023-01-16 18:17 ` tomas
2023-01-16 18:55 ` Jean Louis
2023-01-16 19:14 ` tomas
2023-01-16 18:46 ` Jean Louis
2023-01-17 2:37 ` Eduardo Ochs
2023-01-17 5:46 ` (*) -> 1 Jean Louis
2023-01-17 15:56 ` Michael Heerdegen
2023-01-17 16:29 ` Jean Louis
2023-01-17 16:43 ` tomas
2023-01-17 17:25 ` Jean Louis
2023-01-17 19:11 ` Nick Dokos
2023-01-17 17:17 ` Michael Heerdegen
2023-01-17 17:26 ` Jean Louis
2023-01-17 18:46 ` Michael Heerdegen
2023-01-17 18:51 ` Jean Louis
2023-01-17 18:04 ` Jean Louis
2023-01-17 18:28 ` Eduardo Ochs
2023-01-17 19:18 ` Michael Heerdegen
2023-01-18 12:27 ` Jean Louis
2023-01-18 13:37 ` Michael Heerdegen
2023-01-19 8:20 ` Jean Louis
2023-01-19 10:06 ` Tassilo Horn
2023-01-19 13:43 ` Michael Heerdegen
2023-01-19 14:42 ` Jean Louis
2023-01-19 15:27 ` tomas
2023-01-18 13:57 ` Óscar Fuentes
2023-01-19 8:32 ` Jean Louis
2023-01-19 16:51 ` Óscar Fuentes
2023-01-20 8:01 ` Jean Louis
2023-01-18 14:25 ` Michael Heerdegen
2023-01-19 8:34 ` Jean Louis
2023-01-19 13:54 ` Michael Heerdegen
2023-01-19 14:54 ` Jean Louis
2023-01-19 15:19 ` Tassilo Horn
2023-01-20 7:05 ` Jean Louis
2023-01-20 8:52 ` Tassilo Horn
2023-01-20 12:46 ` Jean Louis
2023-01-20 13:02 ` Tassilo Horn
2023-01-20 16:06 ` Jean Louis
2023-01-21 8:19 ` Tassilo Horn
2023-01-22 4:30 ` Emanuel Berg
2023-01-22 6:55 ` Jean Louis
2023-01-22 10:56 ` Emanuel Berg
2023-01-23 3:40 ` [External] : " Drew Adams
2023-01-22 14:34 ` Akib Azmain Turja
2023-01-23 2:23 ` Emanuel Berg
2023-01-23 5:37 ` Jean Louis
2023-01-23 5:55 ` Jean Louis
2023-01-24 2:33 ` Emanuel Berg
2023-01-19 15:46 ` Michael Heerdegen
2023-01-19 17:38 ` Dr Rainer Woitok
2023-01-20 7:31 ` Jean Louis
2023-01-20 11:49 ` Dr Rainer Woitok
2023-01-19 14:54 ` Jean Louis
2023-01-19 17:44 ` [External] : " Drew Adams
2023-01-19 21:29 ` Michael Heerdegen
2023-01-20 7:40 ` Jean Louis
2023-01-20 8:47 ` Emanuel Berg
2023-01-20 7:33 ` Jean Louis
2023-01-18 9:02 ` Anders Munch
2023-01-18 10:49 ` Michael Heerdegen
2023-01-18 11:10 ` Emanuel Berg
2023-01-18 12:48 ` Eli Zaretskii
2023-01-18 14:29 ` Michael Heerdegen
[not found] ` <87k01lica7.fsf@eder.anydns.info>
2023-01-17 16:04 ` Jean Louis
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=Y8Yzh7xGQDCqRkpJ@protected.localdomain \
--to=bugs@gnu.support \
--cc=drew.adams@oracle.com \
--cc=help-gnu-emacs@gnu.org \
--cc=salutis@me.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
Code repositories for project(s) associated with this external index
https://git.savannah.gnu.org/cgit/emacs.git
https://git.savannah.gnu.org/cgit/emacs/org-mode.git
This is an external index of several public inboxes,
see mirroring instructions on how to clone and mirror
all data and code used by this external index.