comp.lang.ada
 help / color / mirror / Atom feed
From: "Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de>
Subject: Re: Gnat GPL 2010 available soon (conditional expressions)
Date: Sun, 27 Jun 2010 18:53:50 +0200
Date: 2010-06-27T18:53:49+02:00	[thread overview]
Message-ID: <4rdrvu1jskwp.1aomtio1yk12o.dlg@40tude.net> (raw)
In-Reply-To: 4c276114$0$2378$4d3efbfe@news.sover.net

On Sun, 27 Jun 2010 10:35:02 -0400, Peter C. Chapin wrote:

> 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);

In comparable cases earlier Ada's choices were opposite:

   Complicated_Expression and then Complicated_Expression
   Complicated_Expression or else Complicated_Expression
   (Type with Complicated_List)

> I might be able to quickly tell which complicated expression I need to
> look at without having to study both.

Do not use complicated expressions, that is the point! Note that you have
to format the expression so that it looked like a normal if. What is the
gain? It is unreadable when written as one line. It is as verbose as normal
if when formatted. And it does not save you writing a function in real-life
cases:

   File_Name := <add extension ".txt" if absent, do lower case, remove
forward "./"> Argument (1);

> Of course it all comes down to what one is used to. Dmitry says the
> leading 'if' makes things harder to read, but I find his examples much
> more difficult.

If you like prefix notation, then why not:

generic -- Built-in intrinsic generic for each type
   Type (<>) is limited private;
function "if" (Condition : Boolean; Then, Else : Type) return Type;

used as:

   if (A, B, C)
   if (A, then => B, else => C)

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



  reply	other threads:[~2010-06-27 16:53 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 [this message]
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
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