comp.lang.ada
 help / color / mirror / Atom feed
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

  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