Path: utzoo!attcan!uunet!lll-winken!lll-tis!helios.ee.lbl.gov!nosc!ucsd!ucbvax!spp3.UUCP!simpson
From: simpson@spp3.UUCP (Scott Simpson)
Newsgroups: comp.lang.ada
Subject: Type NATURAL isn't
Message-ID: <8806231808.AA15365@spp3.SPP>
Date: 23 Jun 88 18:08:00 GMT
Sender: daemon@ucbvax.BERKELEY.EDU
Organization: The Internet
Lines: 22

Can anybody explain why the LRM declares NATURAL as
    
    subtype NATURAL is INTEGER range 0..INTEGER'LAST;

Natural numbers start at 1!  Any mathematician would assume it
to be the same declaration as POSITIVE.  A better solution would
be
    subtype WHOLE is INTEGER range 0..INTEGER'LAST;

You might argue that I could make the declarations

    subtype WHOLE is NATURAL;
    subtype NATURAL is STANDARD.NATURAL range 1..INTEGER'LAST;

but then any Ada programmer who reads my code will get thoroughly
confused.  I talked to my boss, Frank Belz, and he said that when Ada
was being developed, a number of people complained that they thought
of natural numbers as starting at zero so they made the language that
way.  This is clearly incorrect.
	Scott Simpson
	TRW Space and Defense Sector
	...{decvax,ihnp4,ucbvax}!trwrb!simpson  (UUCP)
	trwrb!simpson@trwind.trw.com		(Internet)