From: Shark8 <onewingedshark@gmail.com>
Subject: Re: Making sense of predicates
Date: Tue, 22 Oct 2013 00:14:27 -0700 (PDT)
Date: 2013-10-22T00:14:27-07:00 [thread overview]
Message-ID: <1830ad81-00dc-4639-922a-771a01cd06ec@googlegroups.com> (raw)
In-Reply-To: <myuy19txq4vq.6xym4vrt6irl.dlg@40tude.net>
On Monday, October 21, 2013 1:51:58 PM UTC-6, Dmitry A. Kazakov wrote:
> Considering this:
> type T is tagged null record;
> procedure P (X : T);
>
> type S is new T with null record;
> procedure Q (X : T);
>
> subtype Subclass is T'Class with
> Dynamic_Predicate => Subclass in S'Class;
>
> -- Should have been Static_Predicate, but illegal
Er, why not have:
Function Is_S( Input : in T'class ) return boolean is
( Input in S'Class );
or just use S'class variables?
>
> Well, predicates were not supposed to work in an intelligent way, so why
> not to add a kind that will?
I think they are supposed to work in an intelligent way, though perhaps they're not as nice as compile-time/static checks.
> There are number of cases where this would be very useful.
Agreed; I was disappointed the following doesn't work:
Subtype Digit_Character is Character range '0'..'9';
Subtype Part_Number is String
with Static_Predicate => (for all C in Part_Number => C in Digit_Character);
As it would be nice to basically subtype out [further-constrain] the element-type just as we can do to the index (e.g. "Subtype Phone_Digits is String(1..7);", which is equivalent to "subtype phone_range is Positive range 1..7; Subtype Phone_Digits is String(Phone_Range);", where 'phone_range' is an anonymous subtype.)
next prev parent reply other threads:[~2013-10-22 7:14 UTC|newest]
Thread overview: 23+ messages / expand[flat|nested] mbox.gz Atom feed top
2013-10-21 19:51 Making sense of predicates Dmitry A. Kazakov
2013-10-22 4:35 ` Randy Brukardt
2013-10-22 8:19 ` Dmitry A. Kazakov
2013-10-22 12:53 ` Georg Bauhaus
2013-10-22 13:38 ` Dmitry A. Kazakov
2013-10-22 20:38 ` Georg Bauhaus
2013-10-24 4:03 ` Randy Brukardt
2013-10-24 7:26 ` Dmitry A. Kazakov
2013-10-22 7:14 ` Shark8 [this message]
2013-10-22 7:35 ` Jacob Sparre Andersen
2013-10-22 17:26 ` Shark8
2013-10-23 7:56 ` Jacob Sparre Andersen
2013-10-24 3:58 ` Randy Brukardt
2013-10-22 8:11 ` Dmitry A. Kazakov
2013-10-22 7:20 ` Jacob Sparre Andersen
2013-10-22 7:57 ` Dmitry A. Kazakov
2013-10-22 14:52 ` Dan'l Miller
2013-10-22 16:30 ` Dmitry A. Kazakov
2013-10-22 17:15 ` Dan'l Miller
2013-10-22 19:26 ` Dmitry A. Kazakov
2013-10-22 19:49 ` J-P. Rosen
2013-10-22 21:30 ` Dan'l Miller
2013-10-23 9:25 ` Dmitry A. Kazakov
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox