From: "Jeffrey R.Carter" <spam.jrcarter.not@spam.acm.org.not>
Subject: Re: New aggregates with Ada 2022.
Date: Wed, 29 Jun 2022 10:30:20 +0200 [thread overview]
Message-ID: <t9h2is$1ckn5$1@dont-email.me> (raw)
In-Reply-To: <t9gir4$1bbuh$1@dont-email.me>
On 2022-06-29 06:01, Randy Brukardt wrote:
>
> But there is (or shouldn't be) anything special about a one-dimensional
> array (presuming you intend to allow arrays with more dimensions). And the
> "abstraction" you talk about is selecting a bunch of barely related elements
> from a multi-dimensional array.
Arrays are usually used to implement map, (mathematical) matrices and vectors,
or sequences. Each usage tends to have unique features:
* Maps are usually constrained. It does not make sense to concatenate, sort,
slice, or slide a map. The abstraction of a map includes non-discrete key
subtypes, so arrays used as maps are a special case.
* Matrices have component types that behave like numbers. The mathematical
definition of matrices includes integer indices with a lower bound of 1. Vectors
are usually considered to be matrices of one column ("column vector") which can
be transposed to obtain matrices of one row ("row vector").
* Sequences are usually unconstrained. Typical discussion of sequences outside
of programming use integer values to indicate positions, using terms such as the
first thing in a sequence, the second thing, ..., so indices should be of an
integer type with a lower bound of 1. It sometimes makes sense to concatenate,
sort, slice, or slide sequences.
A language that provided direct support for these abstractions should not need
to provide arrays.
--
Jeff Carter
"[T]he language [Ada] incorporates many excellent structural
features which have proved their value in many precursor
languages ..."
C. A. R. Hoare
180
next prev parent reply other threads:[~2022-06-29 8:30 UTC|newest]
Thread overview: 44+ messages / expand[flat|nested] mbox.gz Atom feed top
2022-06-19 7:59 New aggregates with Ada 2022 Blady
2022-06-19 14:15 ` Simon Wright
2022-06-20 19:36 ` Blady
2022-06-20 22:01 ` Simon Wright
2022-06-20 21:47 ` Randy Brukardt
2022-06-20 22:18 ` Dmitry A. Kazakov
2022-06-21 23:28 ` Randy Brukardt
2022-06-22 9:04 ` Dmitry A. Kazakov
2022-06-23 1:06 ` Randy Brukardt
2022-06-23 9:32 ` Dmitry A. Kazakov
2022-06-23 10:53 ` G.B.
2022-06-24 1:21 ` Randy Brukardt
2022-06-24 1:24 ` Randy Brukardt
2022-06-24 6:50 ` Dmitry A. Kazakov
2022-06-25 3:13 ` Randy Brukardt
2022-06-25 8:50 ` Dmitry A. Kazakov
2022-06-27 21:37 ` Randy Brukardt
2022-06-28 5:36 ` Niklas Holsti
2022-06-29 4:01 ` Randy Brukardt
2022-06-29 8:30 ` Jeffrey R.Carter [this message]
2022-06-29 9:04 ` Dmitry A. Kazakov
2022-06-30 5:03 ` Randy Brukardt
2022-06-30 8:44 ` Dmitry A. Kazakov
2022-06-29 11:06 ` Niklas Holsti
2022-06-29 12:53 ` Jeffrey R.Carter
2022-06-30 5:07 ` Randy Brukardt
2022-06-30 5:14 ` Randy Brukardt
2022-06-30 8:31 ` Marius Amado-Alves
2022-07-01 5:20 ` Randy Brukardt
2022-06-30 10:30 ` Jeffrey R.Carter
2022-06-30 15:48 ` Marius Amado-Alves
2022-06-30 16:39 ` Jeffrey R.Carter
2022-07-01 0:07 ` Marius Amado-Alves
2022-06-28 7:52 ` Dmitry A. Kazakov
2022-06-29 4:07 ` Randy Brukardt
2022-06-29 7:24 ` Dmitry A. Kazakov
2022-06-30 5:00 ` Randy Brukardt
2022-06-21 23:39 ` Randy Brukardt
2022-06-22 8:26 ` Dmitry A. Kazakov
2022-06-23 1:10 ` Randy Brukardt
2022-06-23 9:32 ` Dmitry A. Kazakov
2022-06-20 22:10 ` Jesper Quorning
2022-06-20 22:59 ` Jesper Quorning
2022-06-21 23:20 ` Randy Brukardt
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox