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.
next prev parent 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