comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Inferring array index type from array object
Date: Wed, 23 Jun 2010 10:01:46 +0200
Date: 2010-06-23T10:01:46+02:00	[thread overview]
Message-ID: <1305oqccr1h2t$.x33x4oxwd84d$.dlg@40tude.net> (raw)
In-Reply-To: 6b20ed09-efc1-4df7-90f9-5e141482e8d0@d37g2000yqm.googlegroups.com

On Wed, 23 Jun 2010 00:30:23 -0700 (PDT), Maciej Sobczak wrote:

> Consider this:
> 
> S : String := "Hello";
> 
> It is possible to iterate over all indices of this array with this
> construct:
> 
> for I in S'Range loop ...
> 
> I would like to declare I as a free variable instead and I would
> expect some symmetry in the language by doing this:
> 
> I : S'Range := S'First;

subtype Index_Span is Integer range S'Range;
I : Index_Span := S'First;

> I have two questions:
> 
> 1. What is the standard justification for this assymetry?

"We don't want to do anything [useful]." (:-))

> What exactly
> makes S'Range "work" in a for loop?

It is hard wired, since ranges are not first class citizens.

> 2. Is it possible to declare the index variable without hardcoding the
> index type (that is, to infer it from the array object)?

No, without improving the type system. E.g. introducing abstract index
types, and abstract range types (or more general sets of index types), and
abstract composite types like arrays.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de



  reply	other threads:[~2010-06-23  8:01 UTC|newest]

Thread overview: 41+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-06-23  7:30 Inferring array index type from array object Maciej Sobczak
2010-06-23  8:01 ` Dmitry A. Kazakov [this message]
2010-06-23  9:03   ` J-P. Rosen
2010-06-23 12:24     ` Georg Bauhaus
2010-06-23 12:52       ` J-P. Rosen
2010-06-23 19:09         ` Simon Wright
2010-06-24  7:25           ` Georg Bauhaus
2010-06-23 14:38     ` Robert A Duff
2010-06-23 15:17       ` J-P. Rosen
2010-06-23 17:17         ` Robert A Duff
2010-06-24  6:16           ` J-P. Rosen
2010-06-23 12:13   ` Niklas Holsti
2010-06-23 14:27     ` Peter C. Chapin
2010-06-23 20:24       ` Niklas Holsti
2010-06-23 16:33     ` Warren
2010-06-23 17:49       ` Dmitry A. Kazakov
2010-06-23 18:45         ` Warren
2010-06-23 20:39       ` Niklas Holsti
2010-06-28 13:44         ` Warren
2010-06-28 22:18           ` Niklas Holsti
2010-06-29  1:49             ` Adam Beneschan
2010-06-29  2:10               ` (see below)
2010-06-29 16:56             ` Warren
2010-06-29 17:50               ` John B. Matthews
2010-06-29 19:31                 ` Warren
2010-06-29 20:06                   ` Jeffrey R. Carter
2010-06-29 20:16                     ` Warren
2010-06-29 20:22                   ` Adam Beneschan
2010-06-29 20:39                     ` Dmitry A. Kazakov
2010-06-29 20:55                     ` Warren
2010-06-29 21:00                       ` Warren
2010-06-29 21:47                         ` John B. Matthews
2010-06-29 21:52                         ` Damien Carbonne
2010-06-29 22:22                         ` Adam Beneschan
2010-06-30 16:43                           ` Warren
2010-06-29 21:18                       ` Jeffrey R. Carter
2010-06-30  5:01                     ` Simon Wright
2010-06-30 14:29                       ` Adam Beneschan
2010-06-29 20:28                   ` Damien Carbonne
2010-06-29 21:20                   ` John B. Matthews
2010-06-23 13:12 ` Gautier write-only
replies disabled

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