comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Ada 2012: In-out parameters for functions
Date: Fri, 3 May 2013 18:29:46 -0500
Date: 2013-05-03T18:29:46-05:00	[thread overview]
Message-ID: <km1h9d$k5k$1@munin.nbi.dk> (raw)
In-Reply-To: op.wwibdpw7ule2fv@cardamome

[-- Warning: decoded text below may be mangled, UTF-8 assumed --]
[-- Attachment #1: Type: text/plain, Size: 1822 bytes --]

"Yannick Duch�ne (Hibou57)" <yannick_duchene@yahoo.fr> wrote in message 
news:op.wwibdpw7ule2fv@cardamome...
...
>But that's a bit like the `non null` for access type, which should have 
>been the default. Would be better if to have to explicitly says you know 
>the argument may be modified, instead of explicitly say you expect it to 
>not be modified and add parentheses everywhere.

Right, but of course Ada gets this wrong from the very beginning. "constant" 
should be the default (everywhere), and you ought to have to declare 
variables. Something like:

     A : variable Integer;
     Len : Integer := 10;
     Len2 : constant Integer := 10; -- Same as the previous.

That's how parameters work, after all.

I agree that named notation should include the direction of the parameter, 
but again its way too late to fix. The best syntax would have been
     Proc (In_Param => A, Out_Param <= B, In_Out_Param <=> C);
but unfortunately "<=" is used for less-than-or-equals and trying to use it 
in this context would be ambiguous.

So the best practical syntax would be:
     Proc (In_Param -> A, Out_Param <- B, In_Out_Param <-> C);

But adding new compound delimiters has never been done (lexical elements are 
unchanged since Ada 83, the only changes being to allow Unicode characters 
in identifiers and strings), and this scares people. Moreover, we don't have 
any current delimiters that have three characters. So this would likely have 
a lot of change to tools, at a very fundemental level.

I suppose if I was designing a new Ada-like language, this is one of the 
things I would do. (Along with overloading for objects and exceptions, 
replacing untagged derived types with some sort of type renaming, and a 
reduction in little used features).

                                              Randy.





  reply	other threads:[~2013-05-03 23:29 UTC|newest]

Thread overview: 46+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2013-05-01 16:28 Ada 2012: In-out parameters for functions dptrash
2013-05-01 17:27 ` Shark8
2013-05-01 19:04 ` Yannick Duchêne (Hibou57)
2013-05-01 19:37   ` Dmitry A. Kazakov
2013-05-01 19:58     ` Yannick Duchêne (Hibou57)
2013-05-02  6:41       ` Dmitry A. Kazakov
2013-05-02  7:11         ` Yannick Duchêne (Hibou57)
2013-05-01 23:37 ` Peter C. Chapin
2013-05-03 10:48 ` anon
2013-05-03 11:04   ` Simon Clubley
2013-05-03 11:32   ` Simon Wright
2013-05-03 11:42   ` Yannick Duchêne (Hibou57)
2013-05-03 11:54     ` Yannick Duchêne (Hibou57)
2013-05-03 23:29       ` Randy Brukardt [this message]
2013-05-04  1:02         ` Adam Beneschan
2013-05-05  5:16           ` Randy Brukardt
2013-05-05 10:24         ` Niklas Holsti
2013-05-05 11:11           ` Yannick Duchêne (Hibou57)
2013-05-05 12:52             ` Bill Findlay
2013-05-05 15:09               ` Niklas Holsti
2013-05-05 19:23                 ` Yannick Duchêne (Hibou57)
2013-05-05 20:37                   ` Niklas Holsti
2013-05-07  0:30                 ` Randy Brukardt
2013-05-07  2:36                   ` Yannick Duchêne (Hibou57)
2013-05-05 19:45               ` Yannick Duchêne (Hibou57)
2013-05-06 15:40               ` Adam Beneschan
2013-05-06 16:17                 ` Bill Findlay
2013-05-06 16:47                   ` Adam Beneschan
2013-05-06 18:43                     ` Bill Findlay
2013-05-07  0:07                     ` Dennis Lee Bieber
2013-05-07  2:34                       ` Yannick Duchêne (Hibou57)
2013-05-07  0:26             ` Randy Brukardt
2013-05-06 15:26           ` Adam Beneschan
2013-05-07  0:36             ` Randy Brukardt
2013-05-07  3:59           ` Yannick Duchêne (Hibou57)
2013-05-07  4:13             ` Yannick Duchêne (Hibou57)
2013-05-07 11:52             ` Yannick Duchêne (Hibou57)
2013-05-03 11:45   ` AdaMagica
2013-05-03 23:54     ` Randy Brukardt
2013-05-04  6:58       ` J-P. Rosen
2013-05-04  7:21         ` Dmitry A. Kazakov
2013-05-04 17:58           ` J-P. Rosen
2013-05-04  7:40         ` Yannick Duchêne (Hibou57)
2013-05-04  8:05           ` Simon Wright
2013-05-04 17:55           ` J-P. Rosen
2013-05-04  0:40   ` Keith Thompson
replies disabled

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