comp.lang.ada
 help / color / mirror / Atom feed
From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Array Help?
Date: Wed, 29 Feb 2012 13:24:10 -0500
Date: 2012-02-29T13:24:10-05:00	[thread overview]
Message-ID: <wcclinl7b1x.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: 17412419.40.1330534213855.JavaMail.geo-discussion-forums@vbva11

Ludovic Brenta <ludovic@ludovic-brenta.org> writes:

> Doesn't that preclude slices that don't start at 'First?

Yes.

> Supposing your declarations, can you call
>
> procedure Foo (Param : in out Integer_Array);
>
> like this:
>
> declare
>    A : Integer_Array (1 .. 10) := (others => 0);
> begin
>    Foo (A (3 .. 8));
> end;
>
> ?

That will raise C_E.  IMHO, that's a language design flaw -- inside
Foo, Param'First ought to be 1.  The fact that Foo can see that
it came from a slice is a leak of abstraction.

The fact that arrays slide in many situations is proof that
people don't really care too much about the bounds -- they
care about the length.

Anyway, slices aren't really all that useful -- for many array types,
you don't need them at all.  And slices as l-values, as in your
example, are quite rare, because you really want to be able to
change the length of the slice, if you want to change it at all.
The following won't work:

    X : String := "Hello, world.";

    X(1..5) := "Goodbye"; -- raises C_E

- Bob



  reply	other threads:[~2012-02-29 18:24 UTC|newest]

Thread overview: 44+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-02-28 20:15 Array Help? Will
2012-02-28 20:47 ` Ludovic Brenta
2012-02-28 22:11   ` Simon Wright
2012-02-28 23:09     ` Will
2012-02-29  0:24   ` Adam Beneschan
2012-02-28 20:50 ` Gautier write-only
2012-02-28 21:33 ` Simon Wright
2012-02-29  0:27   ` Adam Beneschan
2012-02-29  8:00     ` Simon Wright
2012-02-29  8:48       ` Simon Wright
2012-02-29  0:22 ` Adam Beneschan
2012-02-29 16:09   ` Robert A Duff
2012-02-29 16:50     ` Ludovic Brenta
2012-02-29 18:24       ` Robert A Duff [this message]
2012-02-29 19:45         ` stefan-lucks
2012-02-29 20:45           ` Jeffrey Carter
2012-02-29 21:27             ` stefan-lucks
2012-02-29 23:06           ` Robert A Duff
2012-03-02 13:45             ` stefan-lucks
2012-03-07 23:58             ` Randy Brukardt
2012-03-08 11:20               ` stefan-lucks
2012-03-09  2:02                 ` Randy Brukardt
2012-03-09  8:48                   ` stefan-lucks
2012-03-09 21:10                     ` Randy Brukardt
2012-03-15  2:55                     ` BrianG
2012-03-15  7:46                       ` stefan-lucks
2012-02-29 20:07         ` Dmitry A. Kazakov
2012-02-29 23:15           ` Robert A Duff
2012-03-01  8:54             ` Dmitry A. Kazakov
2012-03-01 14:06               ` Robert A Duff
2012-02-29 20:47         ` Simon Wright
2012-02-29 22:23           ` Robert A Duff
2012-02-29 23:27             ` Robert A Duff
2012-03-01  0:53               ` Adam Beneschan
2012-03-01  7:16               ` Ludovic Brenta
2012-03-01 14:03                 ` Robert A Duff
2012-03-08  0:11                   ` Randy Brukardt
2012-03-08  0:08               ` Randy Brukardt
2012-02-29 23:30             ` Simon Wright
2012-02-29 18:35     ` Jeffrey Carter
2012-02-29 22:59       ` Robert A Duff
2012-02-29 23:51         ` Jeffrey Carter
2012-03-01  3:03           ` Robert A Duff
2012-02-29 20:40     ` Adam Beneschan
replies disabled

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