comp.lang.ada
 help / color / mirror / Atom feed
From: "Alexandre E. Kopilovitch" <aek@vib.usr.pu.ru>
Subject: Re: Problems with 'class, help anyone?
Date: Mon, 11 Nov 2002 18:12:56 +0300 (MSK)
Date: 2002-11-11T18:12:56+03:00	[thread overview]
Message-ID: <mailman.1037026681.5800.comp.lang.ada@ada.eu.org> (raw)

>> There is another way, with perhaps even less incompatibility: let's introduce
>> third mode for a formal parameter - "return" mode (in addition to conventional
>> "in" and "out"). That "return" may be applied to the procedure's first parameter
>> only, and it means the same as "out" mode, with single exception: if the first
>> parameter of a procedure is in "return" mode then the procedure *may* be called
>> without the corresponding (first) argument, and in such a case it returns value.
>> For example:
>> 
>> procedure Two_Fold(Result : return Boolean; Something : in Integer);
>> 
>> X : Boolean;
>> Two_Fold(X, 0);  -- "return" as "out", procedure does not return value
>> 
>> if Two_Fold(0) then  -- first argument omitted, procedure returns value
>>   ...
>> end if;
>
>But an out parameter and a return value are not the same, i.e. they cannot 
>generally be interchanged!
>
>Consider e.g.
>     function F return String;
>vs.
>     procedure P (S: out String);
>The former has no idea how long the object is that will get the result (if any), 
>the latter takes the length from the parameter.

Well, I was not writing an AI (perhaps, I should?), therefore I did not look
at the details. Surely, you are right - there must be a limitation for a
parameter in "return" mode: if one is of indefinite type then the currently
undefined attributes (Length, First, etc.) cannot be used for that parameter.
  Did you notice any other hole in that proposal?


Alexander Kopilovitch                      aek@vib.usr.pu.ru
Saint-Petersburg
Russia




             reply	other threads:[~2002-11-11 15:12 UTC|newest]

Thread overview: 34+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2002-11-11 15:12 Alexandre E. Kopilovitch [this message]
2002-11-12 12:20 ` Problems with 'class, help anyone? Dmitry A. Kazakov
  -- strict thread matches above, loose matches on Subject: below --
2002-11-11  9:03 Grein, Christoph
2002-11-09  0:11 Alexandre E. Kopilovitch
2002-10-29  4:48 
2002-10-29  6:08 ` Jim Rogers
2002-10-29 19:10   ` 
2002-10-30  5:27   ` 
2002-10-30  7:49     ` Simon Wright
2002-10-30  8:13     ` Jim Rogers
2002-11-02  4:02       ` 
2002-11-05  2:40       ` 
2002-11-05  4:56         ` Jim Rogers
2002-11-05 17:25           ` Stephen Leake
2002-11-05 22:29             ` Robert A Duff
2002-11-06  8:54               ` Pascal Obry
2002-11-06 15:00                 ` Georg Bauhaus
2002-11-06 17:18                   ` Stephen Leake
2002-11-07 14:14                     ` Georg Bauhaus
2002-11-06 15:19                 ` Ted Dennison
2002-11-06 17:22                   ` Stephen Leake
2002-11-07 10:32                     ` Preben Randhol
2002-11-07 15:53                       ` Stephen Leake
2002-11-06 13:48               ` John English
2002-11-07 15:07                 ` Robert A Duff
2002-11-08  9:48                   ` Dmitry A. Kazakov
2002-11-08 13:44                     ` Robert A Duff
2002-11-08 14:27                       ` Jean-Pierre Rosen
2002-11-09 18:40                       ` Dmitry A. Kazakov
2002-11-11  9:51                         ` Lutz Donnerhacke
2002-11-11 13:24                           ` Dmitry A. Kazakov
2002-11-11 13:55                             ` Lutz Donnerhacke
2002-11-09 19:02                       ` Robert A Duff
2002-11-10 17:13                         ` Dmitry A. Kazakov
replies disabled

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