From: "Yannick Duchêne (Hibou57)" <yannick_duchene@yahoo.fr>
Subject: Re: Ada 2012: In-out parameters for functions
Date: Wed, 01 May 2013 21:58:36 +0200
Date: 2013-05-01T21:58:36+02:00 [thread overview]
Message-ID: <op.wwe8fy11ule2fv@cardamome> (raw)
In-Reply-To: 16vvwvhsw7qit.dwhm4k8m5ggs$.dlg@40tude.net
Le Wed, 01 May 2013 21:37:43 +0200, Dmitry A. Kazakov
<mailbox@dmitry-kazakov.de> a écrit:
> On Wed, 01 May 2013 21:04:03 +0200, Yannick Duchêne (Hibou57) wrote:
>
>> In/out (both way) parameters may be another story, and may more suggest
>> this is a procedure and not a function,
>
> function Read (Stream : in out Root_Stream_Type) return String;
>
:D
This is more a procedure than a function (it either won't return the same
the next time invoked with the same argument or either the argument can
never be considered to be the same as it use to be any‑more), and a
function construct is used only because it is preferable to return an
unconstrained type (as Shark8 mentionned) than an access to the same
object allocated on the heap and returned via an out mode access type
parameter of a procedure.
That's a good example of how a construct may not always match the intended
semantic; it may happens one use a function to implement a procedure, or a
procedure to implement a function.
I feel `function` and `procedure` in Ada means something at the
implementation level more than at the intention level, even if many times
both matches as gloves and hands.
--
“Syntactic sugar causes cancer of the semi-colons.” [1]
“Structured Programming supports the law of the excluded muddle.” [1]
[1]: Epigrams on Programming — Alan J. — P. Yale University
next prev parent reply other threads:[~2013-05-01 19:58 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) [this message]
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
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