From: Shark8 <onewingedshark@gmail.com>
Subject: Re: Beginning Ada Programming, by Andrew T. Shvets (2020)
Date: Fri, 6 Dec 2019 13:05:40 -0800 (PST)
Date: 2019-12-06T13:05:40-08:00 [thread overview]
Message-ID: <b08cad8b-eea0-435d-8058-19321affe42c@googlegroups.com> (raw)
In-Reply-To: <qsedo3$chm$1@dont-email.me>
On Friday, December 6, 2019 at 1:29:57 PM UTC-7, Jeffrey R. Carter wrote:
> On 12/6/19 7:34 PM, Shark8 wrote:
> >>>
> >>> Type Password is new String
> >>> with Dynamic_Predicate => Password'Length in Minimum_Length..Maximum_Length
> >>> and (For all C of Password => C in Digit|Upper_Case|Lower_Case|Symbol)
> >>> and Password(Password'First) Lower_Case;
>
> It looks like you left out an "in".
>
> I bet the coders among us are having heart attacks about the "inefficiency" of
> checking the first character twice. I'd be interested in hearing from compiler
> writers whether their optimizers would optimize that.
Why?
Seriously, why worry about inefficiency at this level? Almost all your observable problems are going to be algorithmic, and attaching assertions to a type allows for optimizations.
Example:
Function Copy( Object : Password ) return Password is (Object);
We know that passing in parameter object, the item must be conformant to Password [checked on call) and so can copy and pass out the Password without checking its validity... MORE, given a variable X --X : Password:= Create_Password("ThisPassword#1!")-- we know that X must conform to the definition, so then Y : Password:= Copy( X ); needn't make any check at all.
next prev parent reply other threads:[~2019-12-06 21:05 UTC|newest]
Thread overview: 82+ messages / expand[flat|nested] mbox.gz Atom feed top
2019-12-03 4:05 Beginning Ada Programming, by Andrew T. Shvets (2020) Paul Rubin
2019-12-03 12:11 ` AdaMagica
2019-12-03 12:33 ` Lucretia
2019-12-03 13:21 ` J-P. Rosen
2019-12-03 13:57 ` Lucretia
2019-12-03 14:04 ` AdaMagica
2019-12-03 14:15 ` AdaMagica
2019-12-03 14:39 ` Simon Wright
2019-12-03 14:45 ` Shark8
2019-12-03 17:38 ` J-P. Rosen
2019-12-03 15:04 ` Lucretia
2019-12-03 15:29 ` Optikos
2019-12-03 16:06 ` Lucretia
2019-12-03 16:26 ` Optikos
2019-12-03 16:50 ` Lucretia
2019-12-03 17:02 ` Shark8
2019-12-03 17:29 ` AdaMagica
2019-12-05 16:35 ` Dirk Heinrichs
2019-12-05 17:12 ` AdaMagica
2019-12-09 19:08 ` Dirk Heinrichs
2019-12-06 18:34 ` Shark8
2019-12-06 20:29 ` Jeffrey R. Carter
2019-12-06 21:05 ` Shark8 [this message]
2019-12-07 0:47 ` Randy Brukardt
2019-12-14 4:21 ` Keith Thompson
2019-12-14 11:34 ` AdaMagica
2019-12-03 17:39 ` Optikos
2019-12-03 19:12 ` Paul Rubin
2019-12-14 4:34 ` Paul Rubin
2020-04-17 5:14 ` Andrew Shvets
2020-04-17 6:17 ` Teaching Ada types J-P. Rosen
2020-04-29 13:07 ` Mehdi Saada
2020-04-29 21:25 ` Paul Rubin
2020-04-17 4:27 ` Beginning Ada Programming, by Andrew T. Shvets (2020) Andrew Shvets
2020-04-17 12:44 ` Ludovic Brenta
2020-04-17 13:07 ` Jere
2020-04-17 14:31 ` Optikos
2019-12-03 20:40 ` Björn Lundin
2020-04-17 4:16 ` Andrew Shvets
2020-04-17 4:11 ` Andrew Shvets
2020-04-17 15:32 ` Luke A. Guest
2020-04-17 4:10 ` Andrew Shvets
2020-04-17 5:02 ` Andrew Shvets
2020-04-17 4:08 ` Andrew Shvets
2019-12-03 19:14 ` Paul Rubin
2019-12-04 6:47 ` J-P. Rosen
2019-12-04 6:49 ` J-P. Rosen
2019-12-04 9:46 ` Paul Rubin
2020-04-17 4:07 ` Andrew Shvets
2020-04-17 5:49 ` J-P. Rosen
2020-04-17 17:59 ` AdaMagica
2020-04-17 19:28 ` Optikos
2020-04-18 15:29 ` AdaMagica
2020-04-18 16:34 ` cantanima.perry
2020-04-18 17:59 ` Jere
2020-04-18 21:54 ` cantanima.perry
2020-04-18 22:18 ` Luke A. Guest
2020-04-18 22:33 ` Jere
2020-04-19 0:52 ` Jere
2020-04-19 2:23 ` Keith Thompson
2020-04-18 22:37 ` Jere
2020-04-19 0:42 ` Paul Rubin
2020-05-02 19:13 ` dave_thompson_2
2020-04-23 18:43 ` Andrew Shvets
2020-04-23 21:07 ` Paul Rubin
2020-04-23 21:33 ` Optikos
2020-04-23 21:42 ` Paul Rubin
2020-04-24 14:42 ` Optikos
2020-04-24 15:35 ` Dennis Lee Bieber
2020-04-30 8:01 ` Paul Rubin
2020-04-23 18:45 ` Andrew Shvets
2020-11-02 21:14 ` Norman Worth
2020-04-17 4:04 ` Andrew Shvets
2019-12-10 5:17 ` Jerry
2020-04-17 3:58 ` Andrew Shvets
2020-05-09 12:39 ` Chris Collings
2020-10-03 4:23 ` andrew...@gmail.com
2020-10-28 19:21 ` sany...@gmail.com
2020-11-11 1:41 ` Azathoth Hastur
2020-11-12 21:24 ` Shark8
2020-11-12 22:31 ` Chris Townley
2020-11-17 20:48 ` azathot...@gmail.com
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox