comp.lang.ada
 help / color / mirror / Atom feed
From: "uq5huo...@gmail.com" <uq5huoixplph@gmail.com>
Subject: Re: Beginners question
Date: Fri, 12 Nov 2021 07:44:02 -0800 (PST)	[thread overview]
Message-ID: <55ac4ea4-da26-4c62-9a30-f32cf241a347n@googlegroups.com> (raw)
In-Reply-To: <iv7f91F39pmU1@mid.individual.net>

Niklas Holsti schrieb am Freitag, 12. November 2021 um 16:24:20 UTC+1:
> On 2021-11-12 16:32, uq5huo...@gmail.com wrote: 
> > Hi, 
> > 
> > I'm beginning to play with Ada, and run into this 
> > 
> > with Ada.Text_IO; use Ada.Text_IO; 
> > procedure Learn is 
> > subtype Alphabet is Character range 'A' .. 'Z'; 
> > begin 
> > Put_Line ("Learning Ada from " & Alphabet'First & " to " & Alphabet'Last); 
> > end Learn; 
> > 
> > Now I want to play a bit with the code ... and this fails and I don't get why and how to solve. 
> > 
> > Put_Line ("Learning Ada from " & Alphabet'First & " to " & Alphabet'Last-1); 
> > or 
> > Put_Line ("Learning Ada from " & Alphabet'First & " to " & (Alphabet'Last-1)); 
> > 
> > Anyone more expirienced can explain this to my, please?
> The Character type is not an integer type (unlike "char" in C), so you 
> cannot subtract 1 from a Character (or an Alphabet value). Character is 
> an enumeration type in Ada. 
> 
> To get the Alphabet value immediately preceding Alphabet'Last, use the 
> Pred ("predecessor") attribute function: 
> 
> Alphabet'Pred (Alphabet'Last) 
> 
> If you need to take larger strides in the Alphabet enumeration, you can 
> use the Pos and Val attribute functions. Pos returns the "position 
> number" of its argument, and that is an integer. Val performs the 
> opposite mapping. For example, to get the Alphabet value that is three 
> positions before Alphabet'Last, you can do 
> 
> Alphabet'Val (Alphabet'Pos (Alphabet'Last) - 3)

Dear Niklas, 
thanks for the explanation. So I run into the strong typing and Ada prevents me to programm C-like. I really like that. :-) 
I will read more onto the  attributes to get familar with this. 

  reply	other threads:[~2021-11-12 15:44 UTC|newest]

Thread overview: 7+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2021-11-12 14:32 Beginners question uq5huo...@gmail.com
2021-11-12 15:24 ` Niklas Holsti
2021-11-12 15:44   ` uq5huo...@gmail.com [this message]
2021-11-12 15:44   ` uq5huo...@gmail.com
  -- strict thread matches above, loose matches on Subject: below --
2001-12-17 17:05 Dave
2002-01-02 14:44 ` Jacob Sparre Andersen
2002-01-02 14:56   ` Ted Dennison
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox