comp.lang.ada
 help / color / mirror / Atom feed
From: ytomino <aghia05@gmail.com>
Subject: Re: Some kind of repeating in Static_Predicate
Date: Mon, 4 Jun 2018 19:30:04 -0700 (PDT)
Date: 2018-06-04T19:30:04-07:00	[thread overview]
Message-ID: <675621d4-7f23-48bd-a7e0-4105b21ddfd7@googlegroups.com> (raw)
In-Reply-To: <pf4b7r$3oi$1@franka.jacob-sparre.dk>

On Tuesday, June 5, 2018 at 6:33:48 AM UTC+9, Randy Brukardt wrote:
> "ytomino" <agh...@gmail.com> wrote in message 
> news:503...@googlegroups.com...
> > On Monday, June 4, 2018 at 3:26:56 PM UTC+9, Jacob Sparre Andersen wrote:
> >> ytomino <agh...@gmail.com> writes:
> >>
> >> > I'm trying to use a constant table (but that is unstable and may be
> >> > changed in compile-time) in Static_Predicate.
> >> >
> >> >  Set : constant String := ('T', 'a', 'b', 'l', 'e');
> >> >
> >> >  subtype T is Character
> >> >     with Static_predicate => (for some I of Set => X = I);
> >>
> >> Why not admit that it is a Dynamic_Predicate?
> >>
> >> Alternatively:
> >>
> >>    type T is ('T', 'a', 'b', 'l', 'e');
> >>
> >> Or:
> >>
> >>    subtype T is Character
> >>       with Static_Predicate => (T in 'T' | 'a' | 'b' | 'l' | 'e');
> >>
> >> Greetings,
> >>
> >> Jacob
> >> -- 
> >> "people who live in glass houses shouldn't be throwing rocks
> >>  -- especially at those who don't live in glass houses"
> >
> > Thanks. But I want to separate the table and the subtype...
> 
> That seems backwards to me. You are wanting to declare a set subtype, and 
> Ada uses the silly static predicate for doing so rather than having a proper 
> set constraint. Either way, that's a subtype declaration.
> 
> So the operative thing here is the subtype. There's no "table" in a set 
> description. If you need to check membership in the set, you just do that 
> with "in".
> 
> Thus:
> 
>     subtype T is Character
>        with Static_Predicate => (T in 'T' | 'a' | 'b' | 'l' | 'e');
> 
>     if Param in T then ...
> 
> If you really needed a table, I'd construct that from the set. (But I can't 
> imagine what the use would be, certainly in cases like the "separators" 
> definition you showed in another mail.)
> 
>                                   Randy.

Thanks. I understood it's backwards.
Yes, the table is needless in run-time. I want only compile-time checking by Static_Predicate in this case. Also, types should be more primary than constants basically.
However, a subtype declaration can't be separated to another package... The table may be configured before compiling, like the example of directory separators.


  reply	other threads:[~2018-06-05  2:30 UTC|newest]

Thread overview: 10+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2018-06-03 17:45 Some kind of repeating in Static_Predicate ytomino
2018-06-04  6:26 ` Jacob Sparre Andersen
2018-06-04  7:15   ` ytomino
2018-06-04 21:33     ` Randy Brukardt
2018-06-05  2:30       ` ytomino [this message]
2018-06-05 20:37         ` Randy Brukardt
2018-06-04  7:17   ` ytomino
2018-06-06 11:04 ` Marius Amado-Alves
2018-06-06 14:53   ` ytomino
2018-06-07  9:15     ` Marius Amado-Alves
replies disabled

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox