• Subject: Re: 1-based indexing in Lua or the one without zero
• From: Oliver Kroth <oliver.kroth@...>
• Date: Mon, 23 Apr 2018 18:58:58 +0200

```

Am 22.04.2018 um 17:43 schrieb ag:
```
```On Tue, Apr 03, at 03:25 Oliver Kroth wrote:
```
```
Am 03.04.2018 um 15:02 schrieb Ahmed Charles:
```
```Written before I was born, EWD831
(http://www.cs.utexas.edu/users/EWD/transcriptions/EWD08xx/EWD831.html)
describes why 0 based ranges are superior better than I can. It has
nothing to do with programming languages and everything to do with math.
```
```Actually, Dijkstra just prefers to have items counted like 0,...,N-1 instead
of 1,...,N
odd.

When I count things, let's say, cows, I start with the first cow and say
"one", second cow "two",  third cow counted "three"...
I would not start with the first cow and say "zero", I say "zero" when there
is no cow at all.
A zero-th cow is the cow in the empty corral, and actually "not a cow"...
```
```I'm going to be another one that bites the dust here.

So, lets say that we could talk with a just born human child, and asked him:
```
how old are you?
```
Is not one, but is not zero either. He actually is zero and an offset.
```
Back in the old times learned to say that we are __at__ [age] or walking
```at [age].

In this regard and in a humanish way of thinking and without second
thoughts, Lua got it right. But i do not think that machines thinks the
same.
```
```They don't have to. That's the compiler's task.
```
```And more philosophically:

What could be the one without the zero? It has no meaning, as it requires a
starting point to exist and calculate itself and the next same objects, even
if it is a cow or a goat (its wise that you've used cows and not goats in the
example (but this is another story)).
```
It fills the gap between negative integer numbers and positive integer numbers.
```But now, what do you think that would be the kid's answer after one year?

For the record and in mho, C like languages choosed very wiselly to refer at
the starting point of the object address (or n-1) and for a good reason.

```
I always found and still find it odd that the n-th element is indexed with n-1;
```always reminds me of one of my favourite jokes:

What are the three most common errors in programming?

1) missing semicolon,
2) being off by one

--
Oliver

```