From: Robert A Duff <bobduff@shell01.TheWorld.com>
Subject: Re: Array Help?
Date: Wed, 29 Feb 2012 18:06:46 -0500
Date: 2012-02-29T18:06:46-05:00 [thread overview]
Message-ID: <wccy5rls0hl.fsf@shell01.TheWorld.com> (raw)
In-Reply-To: Pine.LNX.4.64.1202292025510.3727@medsec1.medien.uni-weimar.de
stefan-lucks@see-the.signature writes:
> On Wed, 29 Feb 2012, Robert A Duff wrote:
>
>> 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.
>
> Not quite. I quite frequently use something like
>
> X := X(X'Last) & (X'First .. X'Last-1)
>
> and
>
> First := X'First;
> while First < X'Last and then X(First) = ' ' loop
> First := First + 1;
> end loop;
> return X(First .. X'Last);
>
> and similar constructs, where array slicing is a highly useful language
> feature.
Mildly useful, I'd say. If you didn't have slices, you'd have to
write a few lines of code instead of the above -- an extra loop.
That's a purely local change. No big deal.
Contrast that with features like packages, private types, user-defined
integer types, etc, the lack of which would damage the entire structure
of your program.
Sure, slices are useful, and I use them. But I wouldn't mind too
much if they didn't exist. It's trivial to write a Slice function
that does what "A(F..L)" does.
You didn't address my point about l-values. None of your slices
above are l-values. L-value slices cause a lot of implementation
trouble, and are nearly useless -- the language would be better
off without them.
> On the other hand, I agree that the fact that array slices carry their
> original indices with them is a misfeature of Ada.
>
> I would appreciate way to convert ingoing parameters into some standard
> indexing. For example (inventing a new syntax variant on the fly):
>
> procedure Sort(Items: in out array(generic Positive range <>) of T) is
Interesting idea.
- Bob
next prev parent reply other threads:[~2012-02-29 23:06 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
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 [this message]
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