comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Bug in Ada - Latin 1 is not a subset of UTF-8
Date: Thu, 20 Oct 2016 09:36:31 +0200
Date: 2016-10-20T09:36:31+02:00	[thread overview]
Message-ID: <nu9s5v$18f0$1@gioia.aioe.org> (raw)
In-Reply-To: nu938r$g7h$1@franka.jacob-sparre.dk

On 20/10/2016 02:31, Randy Brukardt wrote:
> "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message
> news:nu4nee$18le$1@gioia.aioe.org...
> ...
>> Numeric character is a constraint expressible in Ada:
>>
>>    subtype Numeric is Character range '0'..'9';
>>
>> Numeric string constraint is not expressible, but it still a constraint.
>
> It's expressible as a predicate, though; that's the entire point of
> predicates (to act like user-defined constraints):
>
>     subtype Numeric_String is String
>         with Dynamic_Predicate => (for all E of Numeric_String => E in
> Numeric);
>
> It's not 100% as good as a constraint (as modifications of individual
> components won't be checked), but it almost always will do the job.

Not nice. Is there a reason why, apart from premature optimization?

> You also could declare a new type with the proper constraint:
>     type Numeric_String is array (Positive range <>) of Numeric;
>
> That will have all of the string operations, but it (unfortunately) can't be
> converted to String (you'd have to write a function to do that).
>
> Since both of these possibilities exist, I'd hardly call the constraint "not
> expressible". At worst, it's inconvinient to express it.

Yes, maybe.

-- 
Regards,
Dmitry A. Kazakov
http://www.dmitry-kazakov.de

  reply	other threads:[~2016-10-20  7:36 UTC|newest]

Thread overview: 30+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2016-10-17 20:18 Bug in Ada - Latin 1 is not a subset of UTF-8 Lucretia
2016-10-17 20:57 ` Jacob Sparre Andersen
2016-10-18  5:44   ` J-P. Rosen
2016-10-17 23:25 ` G.B.
2016-10-18  7:41   ` Dmitry A. Kazakov
2016-10-18  8:23     ` G.B.
2016-10-18  8:45       ` Dmitry A. Kazakov
2016-10-18 10:09         ` G.B.
2016-10-18 12:24           ` Dmitry A. Kazakov
2016-10-18 15:10             ` G.B.
2016-10-18 16:35               ` Dmitry A. Kazakov
2016-10-18 17:35                 ` G.B.
2016-10-18 20:03                   ` Dmitry A. Kazakov
2016-10-19  8:15                     ` G.B.
2016-10-19  8:25                       ` G.B.
2016-10-19  8:49                       ` Dmitry A. Kazakov
2016-10-19 14:20                         ` G.B.
2016-10-19 16:20                           ` Dmitry A. Kazakov
2016-10-20  0:31         ` Randy Brukardt
2016-10-20  7:36           ` Dmitry A. Kazakov [this message]
2016-10-21 12:28             ` G.B.
2016-10-21 16:13               ` Lucretia
2016-10-21 16:43                 ` Dmitry A. Kazakov
2016-10-22  5:51                   ` G.B.
2016-10-22  7:49                     ` Dmitry A. Kazakov
2016-10-24 11:35                       ` Luke A. Guest
2016-10-24 13:01                         ` Dmitry A. Kazakov
2016-10-24 14:54                           ` Luke A. Guest
2016-10-22  1:53             ` Randy Brukardt
2016-10-28 21:08         ` Shark8
replies disabled

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