comp.lang.ada
 help / color / mirror / Atom feed
From: Shark8 <onewingedshark@gmail.com>
Subject: Re: array from static predicate on enumerated type
Date: Wed, 17 Mar 2021 13:41:16 -0700 (PDT)	[thread overview]
Message-ID: <08b15573-0197-4b6e-9411-d0ca0f627f62n@googlegroups.com> (raw)
In-Reply-To: <424f7220-abba-49df-8160-17851c336999n@googlegroups.com>

On Wednesday, March 17, 2021 at 1:08:36 PM UTC-6, Matt Borchers wrote:
> Shark8, 
> 
> I have read all posts in this thread and I'm pretty sure I understand the holey array and slice problem and I do not want holey arrays. Your example is interesting but it adds a lot of complexity. However, that could obviously be abstracted away. 
> 
> My comment was not a request but a question just as you posed: why "some sort of automatically generated function that is invisibly integrated into this object" to do the mapping is not possible for the implementations of the 'Pos, 'First, 'Last, etc. attributes. "This object" being an enumerated sub-type with a Static_Predicate.
Because it's undefined, and the operations prohibited.
You're jumping from "Let's have a continuous function" to "we can define division by zero as something useful."
And you can... but not automatically, and when someone brings up the function F(x) = 1/x and says "well, we have to resolve this issue, as the limit to zero comes from negative it becomes -Infinity, but from positive it becomes positive Infinity."

The same thing is happening here: you're saying that 'pos, 'succ, etc could be defined -- and that's true -- but you're ignoring the underlying problems.
Having something like "P : Constant Array (Primes) of Natural;" could indeed be useful, but what would P(12) be? If Primes'Succ(11) = 13, then what is Primes'Pred(2)? [This latter is a good example because in String manipulation, the 0 value is used for indicating things like "not-found", and we absolutely can say SUBTYPE INDEXER IS VALUE'First..INDEX(VALUE, "NOEXIST"); and have it be sensible when INDEXER is the null-range.]

> 
> I was originally trying/hoping to create a collapsed array needing only the minimal memory required to support the Static_Predicate sub-type as the index. In my previous post I began to realize that solving this inconsistency just might result in a different inconsistency and I would not be in favor of a solution like that.
Use type-system and/or PRIVATE- & implementation-parts.

  reply	other threads:[~2021-03-17 20:41 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
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 [this message]
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