] >
Als je leert tellen, in de zin van opsommen van de natuurlijke getallen, dan ervaar je twee dingen:
Verder is het een kwestie van smaak of je bij of bij begint te tellen. Hier beginnen we bij . De getallen waar we het hier over hebben heten natuurlijke getallen. Natuurlijke getallen gebruiken we om aantallen elementen van eindige verzamelingen mee aan te geven. Daarom is er hier voor gekozen om ook als een natuurlijk getal te zien: , de lege verzameling heeft elementen. Alle natuurlijke getallen tezamen vormen ook een verzameling, de verzameling der natuurlijke getallen
De verzameling der natuurlijke getallen noteren we als . Dus: .
De rij van natuurlijke getallen leren we door de namen van deze getallen op te sommen:
Deze namen zijn woorden in tien cijfers: . De naam van het volgende natuurlijke getal (de opvolger van dat getal) wordt verkregen door elk van de cijfers aan het eind van het woord (dat kunnen er zijn) te vervangen door een en het cijfer ervoor door het volgende cijfer (in de volgorde ) te vervangen. Bestaat het woord uit louter cijfers , dan plaats je er bovendien, na deze elk door een vervangen te hebben, een voor. Het is duidelijk dat je uit de opvolger van een getal het getal zelf weer kunt terugvinden door omgekeerd te werk te gaan. Bij gaat dat niet, dat getal is dan ook geen opvolger van een getal.
Het gebruik van deze notatie is historisch gegroeid. Ook andere grondtallen dan tien zijn te gebruiken; daar komen we later nog op terug. Dit soort notaties is heel krachtig omdat veel eigenschappen van natuurlijke getallen aan de notatie zijn af te lezen, bijvoorbeeld het even zijn van een getal of dat het groter is dan een miljoen.
Een heel primitieve notatie krijg je door maar één teken te gebruiken, een streepje bijvoorbeeld: . De notatie voor is dan een leeg woord en de opvolger van een getal noteer je door het plaatsen van een extra streepje. In plaats van ’5’ schrijf je dan . Je kunt ook ‘turven’; dat is net iets minder primitief.
In iedere programmeertaal kun je met natuurlijke getallen werken. Maar, omdat we geïnteresseerd zijn in wat je er minimaal voor nodig hebt, maken we het ons moeilijk. Om te laten zien hoe alles uit deze minimale eisen kan worden opgebouwd, zullen we de opvolger definiëren en verder alleen deze opvolgerfunctie gebruiken.
Al het rekenen dat we op deze minimale manier vastleggen zetten we in de module integer.py. We gaan uit van de functie succ die van een natuurlijk getal z’n opvolger teruggeeft.
Strikt genomen zouden we de beschrijving van de opvolger op bladzijde § moeten gebruiken: een natuurlijk getal (integer) omzetten in een woord (string) van cijfers, dit woord bewerken en het resultaat omzetten in een integer. We laten dat aan de lezer over.