From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: array from static predicate on enumerated type
Date: Mon, 15 Mar 2021 21:25:10 +0100 [thread overview]
Message-ID: <s2ofr1$1cg3$1@gioia.aioe.org> (raw)
In-Reply-To: 9abb081d-a323-466d-9ae8-a2fc8fa24725n@googlegroups.com
On 2021-03-15 18:48, Shark8 wrote:
> So, in Ada, there's no good choice for how to actually DO an array with gaps in the index:
That applies to all containers. The problem is mapping the key to a
dense position when the key is not dense or might be unordered.
There is no gaps in positions.
> But Array *isn't* a map, though often it is substituted as one.
Of course it is, per definition of mapping. f : key -> element.
> Array has further constraints, like the contiguous memory labeled above.
No. The constraint here is a dense index. That is not specific to a
general map or an array. It is a fundamental property of the set of keys
being a convex set. Convex ensures certain useful mathematical
properties invariant to the representation of the mapping. In
particular, it gives a way to enumerate elements. If you want to
enumerate non-convex keys of a map you have a problem. As the OP just
encountered.
Arbitrary predicate kills convex, so the problem. Not array. A map would
have just same problem: a map of LETTERS is in general not substitutable
for a map of CURVED_LETTERS.
> Ada's arrays ARE contiguous memory; so I'm not sure what you're trying to distinguish here.
No. A dense index allows contiguous representation, but it does not
require it.
--
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de
next prev parent reply other threads:[~2021-03-15 20:25 UTC|newest]
Thread overview: 38+ messages / expand[flat|nested] mbox.gz Atom feed top
2021-03-12 20:49 array from static predicate on enumerated type Matt Borchers
2021-03-12 21:22 ` Egil H H
2021-03-12 22:16 ` Jeffrey R. Carter
2021-03-12 22:41 ` Dmitry A. Kazakov
2021-03-13 2:06 ` Matt Borchers
2021-03-13 4:55 ` Randy Brukardt
2021-03-15 14:16 ` Matt Borchers
2021-03-15 17:53 ` Shark8
2021-03-16 6:58 ` Randy Brukardt
2021-03-13 8:04 ` Dmitry A. Kazakov
2021-03-15 14:11 ` Matt Borchers
2021-03-15 17:48 ` Shark8
2021-03-15 20:25 ` Dmitry A. Kazakov [this message]
2021-03-16 13:27 ` Shark8
2021-03-16 14:25 ` Dmitry A. Kazakov
2021-03-17 4:05 ` Matt Borchers
2021-03-17 7:08 ` Dmitry A. Kazakov
2021-03-17 18:44 ` Matt Borchers
2021-03-17 19:41 ` Dmitry A. Kazakov
2021-03-18 1:30 ` Matt Borchers
2021-03-18 8:20 ` Dmitry A. Kazakov
2021-03-19 0:10 ` Matt Borchers
2021-03-19 8:00 ` Dmitry A. Kazakov
2021-03-18 10:15 ` Niklas Holsti
2021-03-18 10:47 ` AdaMagica
2021-03-18 11:26 ` Dmitry A. Kazakov
2021-03-19 0:34 ` Matt Borchers
2021-03-19 0:49 ` Jeffrey R. Carter
2021-03-23 1:07 ` Matt Borchers
2021-03-23 3:43 ` Randy Brukardt
2021-03-22 19:09 ` Niklas Holsti
2021-03-17 15:08 ` Shark8
2021-03-17 19:08 ` Matt Borchers
2021-03-17 20:41 ` Shark8
2021-03-18 1:04 ` Matt Borchers
2021-03-18 14:25 ` Shark8
2021-03-18 23:36 ` Matt Borchers
2022-03-16 0:38 ` Thomas
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox