comp.lang.ada
 help / color / mirror / Atom feed
From: Shark8 <onewingedshark@gmail.com>
Subject: Re: array from static predicate on enumerated type
Date: Thu, 18 Mar 2021 07:25:00 -0700 (PDT)	[thread overview]
Message-ID: <5b078796-0976-4303-a733-3eaa66637b07n@googlegroups.com> (raw)
In-Reply-To: <7e1f3203-0fe9-428e-a8ac-411f432dca49n@googlegroups.com>

On Wednesday, March 17, 2021 at 7:04:06 PM UTC-6, Matt Borchers wrote:
> What I would expect is that P(12) would be an illegal access because 12 is not a valid value of Primes thus cannot be an index and a constraint error or out-of-range error would be thrown.
Which is reasonable.
> Wouldn't this just involve the compiler to insert "if x not in primes then raise..." if constraint checking is enabled?
Possibly, there are also dynamic-predicates to consider; imagine a subtype wherein the usage of some number excludes that number from the subtype. Maybe a "unused_room_keys" subtype for a hotel.
> Otherwise you have an erroneous program. Similarly, Primes'Succ(12) is also illegal. Primes'Pred(2) also illegal because there is no prime before 2 so presumably you have defined your Static_Predicate to enumerate the primes with 2 listed first.
Why?
Given the standard "subtype Natural is Integer range 0..Integer'Last" and "subtype Positive is Natural range Natural'Succ(Natural'First)..Natural'Last"
Positive'Pred( 1 ) = 0, and no CONSTRAINT_ERROR.
Do you want to break standard Ada usage?

  reply	other threads:[~2021-03-18 14: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
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 [this message]
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