all messages for Emacs-related lists mirrored at yhetil.org
 help / color / mirror / code / Atom feed
From: Martin Steffen <msteffen@ifi.uio.no>
To: emacs-orgmode@gnu.org
Subject: Re: [more absurd]
Date: Mon, 04 Jul 2022 15:18:31 +0200	[thread overview]
Message-ID: <867d4thv88.fsf@login.ifi.uio.no> (raw)
In-Reply-To: <YsLZJ1undSe6p1b6@tuxteam.de> (tomas@tuxteam.de's message of "Mon, 4 Jul 2022 14:12:23 +0200")

>>>>>   <tomas@tuxteam.de> writes:


    > About the cultural thing... you seem to be a zero-counter (as I

I guess I am, by maybe have not been a zero-counter from the start, but
a 1-counter. I vaguely remember to have learnt (at school? beginning at
university?) that ``THE natural numbers'' (the ones Kronecker claimed to
have been created by God) start with $1$. There are referred to by
$\mathbb{N}$, and then there's also some versions, written
$\mathbb{N}_0$ (THE natural numbers ``extended'' by 0), they can be
handy too, sometimes.


From a constructivistic point of view (and as a computer scientist, one
is obliged to have a constructivist view), for me 0 belongs to the most
natural way of defining natural numbers.

The fact that some theorems or facts are stated better this way or the
other is minor (as long as it's not that the vast majority of math on
Nats gets simpler without 0 (or with 0). One would also not work with
Nats starting at two like Nat ={2, 3,4,...}, for the extravagant
advantage to avoid stating clumsily a special-case condition ``a prime
number is a natural number larger or equal 2 and only divisible by 1 or
itself'' (if one thinks 1 and 0 are better not included in the prime
numbers, as most would do).

Constructing the nats from first principles seems to me a Nat is either
0, or the successor of a nat (succ n). Also for lists (and in complete
analogy): Lists are either empty () or built from cons-ing an element to
a list.

An analogous construction would of course also work using 1 as base
case resp. a one-element list as basic constructor. But it ``feels''
less natural for me in the meantime.


[talking about programming and data structures: while I think from a
practical (and aesthetic) point of view, lists should include the empty
list, and not start with lists of length 1 (likewise that functions
should be allowed to have a 0-length input parameter list), I found it
interesteding that _internally_, lists and similar data structures are
often usefully implemented with some ``sentinel'' node, i.e., the empty
lists is represented by some ``dummy cell'' in memory (not by
``nothing''), and a list of length n has additionally one such dummy
cell at the end, say, to make walking through the list, resp. checking
for the end more smooth and uniform, sometimes.]















    > am, too): there, too, I think that "our" position isn't in any way
    > "better" -- some theorems look better this way, some that way;
    > some inductions are easier to start at 1, some at 0.

    > Cheers -- t



      reply	other threads:[~2022-07-04 13:47 UTC|newest]

Thread overview: 17+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2022-07-01  5:31 org-table-sort-lines (numerically) leaves 0 separated Uwe Brauer
2022-07-03 18:26 ` [more absurd] (was: org-table-sort-lines (numerically) leaves 0 separated) Uwe Brauer
2022-07-03 19:11   ` Bruno Barbier
2022-07-03 19:29     ` [more absurd] Uwe Brauer
2022-07-03 19:44       ` Bruno Barbier
2022-07-03 19:58         ` Uwe Brauer
2022-07-03 20:14           ` Bruno Barbier
2022-07-03 20:24             ` Uwe Brauer
2022-07-04  4:31               ` tomas
2022-07-04  5:10                 ` Uwe Brauer
2022-07-04  6:23                   ` tomas
2022-07-04  6:46                     ` Martin Steffen
2022-07-04  7:42                       ` Uwe Brauer
2022-07-04 12:16                         ` tomas
2022-07-04 13:59                           ` Uwe Brauer
2022-07-04 12:12                       ` tomas
2022-07-04 13:18                         ` Martin Steffen [this message]

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=867d4thv88.fsf@login.ifi.uio.no \
    --to=msteffen@ifi.uio.no \
    --cc=emacs-orgmode@gnu.org \
    /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.