From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Gnat GPL 2010 available soon (conditional expressions)
Date: Tue, 29 Jun 2010 14:28:32 -0500
Date: 2010-06-29T14:28:32-05:00 [thread overview]
Message-ID: <i0dhh3$qh7$1@munin.nbi.dk> (raw)
In-Reply-To: 4c276114$0$2378$4d3efbfe@news.sover.net
"Peter C. Chapin" <pcc482719@gmail.com> wrote in message
news:4c276114$0$2378$4d3efbfe@news.sover.net...
...
> Also I find that when skimming program text just knowing that something
> is conditional is sometimes enough for me to decide if I have to read it
> more closely or not. If it says
>
> X := (if Rare_Condition then
> Complicated_Expression
> else
> Complicated_Expression);
>
> I might be able to quickly tell which complicated expression I need to
> look at without having to study both.
Note that one advantage of conditional expressions is that they can avoid
duplicating code. For instance,
X(Index_Expression*Index_Base + 1) :=
(if Condition then
Complicated_Expression
else
Other_Complicated_Expression);
Probably is preferable to
if Condition then
X(Index_Expression*Index_Base + 1) := Complicated_Expression;
else
X(Index_Expression*Index_Base - 1) := Other_Complicated_Expression;
end if;
because it is much less likely to have a subtle error (like the second
example I wrote above). I find that I write quite a bit of code of the
second form, and I know I'd save time debugging if I had the first.
Randy.
P.S. But the resolution of conditional expressions is surprisingly complex.
I think we've got it right, finally.
next prev parent reply other threads:[~2010-06-29 19:28 UTC|newest]
Thread overview: 42+ messages / expand[flat|nested] mbox.gz Atom feed top
2010-06-16 20:14 Gnat GPL 2010 available soon Stephen Sangwine
2010-06-16 21:24 ` Martin
2010-06-16 21:35 ` Simon Wright
2010-06-18 19:48 ` Albrecht Käfer
2010-06-26 12:04 ` lekktu
2010-06-26 21:04 ` anon
2010-06-26 21:41 ` lekktu
2010-06-27 3:33 ` anon
2010-06-27 10:49 ` lekktu
2010-06-26 21:42 ` Dmitry A. Kazakov
2010-06-26 22:01 ` lekktu
2010-06-27 8:04 ` Gnat GPL 2010 available soon (conditional expressions) Georg Bauhaus
2010-06-27 8:37 ` Dmitry A. Kazakov
2010-06-27 10:55 ` lekktu
2010-06-27 12:12 ` Dmitry A. Kazakov
2010-06-27 13:42 ` Georg Bauhaus
2010-06-27 14:35 ` Peter C. Chapin
2010-06-27 16:53 ` Dmitry A. Kazakov
2010-06-28 11:24 ` Peter C. Chapin
[not found] ` <oizwym2afwmx.1jm5tt7wtpm7v.dlg@40tude.net>
2010-06-28 14:47 ` Georg Bauhaus
2010-06-28 16:36 ` Dmitry A. Kazakov
2010-06-28 17:04 ` Georg Bauhaus
2010-06-28 17:37 ` Dmitry A. Kazakov
2010-06-29 19:28 ` Randy Brukardt [this message]
2010-06-30 1:19 ` BrianG
2010-06-30 3:21 ` Britt Snodgrass
2010-07-05 1:27 ` Phil Clayton
2010-07-05 10:26 ` Georg Bauhaus
2010-07-05 14:24 ` Phil Clayton
2010-07-05 13:12 ` Dmitry A. Kazakov
2010-07-05 22:47 ` Phil Clayton
2010-07-06 7:36 ` Dmitry A. Kazakov
2010-07-06 9:13 ` Georg Bauhaus
2010-07-06 16:31 ` Phil Clayton
2010-07-06 17:18 ` Dmitry A. Kazakov
2010-07-07 12:00 ` Phil Clayton
2010-07-07 13:39 ` Dmitry A. Kazakov
2010-06-30 4:13 ` Gautier write-only
2010-06-30 16:46 ` Warren
2010-06-30 4:09 ` Gautier write-only
2010-06-30 23:20 ` Peter C. Chapin
2010-06-27 21:40 ` Gnat GPL 2010 available soon mahdert
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox