comp.lang.ada
 help / color / mirror / Atom feed
From: "Randy Brukardt" <randy@rrsoftware.com>
Subject: Re: Callback in Ada
Date: Mon, 29 Nov 2010 19:32:55 -0600
Date: 2010-11-29T19:32:55-06:00	[thread overview]
Message-ID: <id1k89$1vc$1@munin.nbi.dk> (raw)
In-Reply-To: 10p6vzd761rdz$.1gtmc0fk6t9rb.dlg@40tude.net

"Dmitry A. Kazakov" <mailbox@dmitry-kazakov.de> wrote in message 
news:10p6vzd761rdz$.1gtmc0fk6t9rb.dlg@40tude.net...
...
> P.P.S. As Ada strives to introduce procedural-literals, e.g. conditional
> expressions, fancy quantified expressions and other awful stuff, it will
> inevitably require subprogram types, because you cannot get pointer of a
> literal. What is all this mess worth of if it cannot be given as a
> parameter?

No problem here, just use an expression function to give your expression a 
name (and parameters); then you can use 'Access just fine. Forget anonymous 
stuff, it only leads to heartache. :-)

    function Foobar (A : Integer) return Integer is (if A > 10 then A - 5 
else A);

 [The only exception is anonymous access-to-subprogram, and that is because 
of the special closure semantics. It would have been better to use a keyword 
to get that semantics, something like:
    type Local_Sub is local access function (A : Integer) return Integer;
but this isn't sufficiently broken for such a change.]

                                        Randy.

                              Randy.





  reply	other threads:[~2010-11-30  1:32 UTC|newest]

Thread overview: 36+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2010-11-27  9:47 Callback in Ada Georg Maubach
2010-11-27 10:11 ` Dmitry A. Kazakov
2010-11-27 10:22 ` Ludovic Brenta
2010-11-27 11:04   ` Vinzent Hoefler
2010-11-27 22:05   ` Maciej Sobczak
2010-11-27 10:26 ` Alex Mentis
2010-11-27 10:46 ` Vinzent Hoefler
2010-11-27 11:32 ` Georg Bauhaus
2010-11-27 21:11   ` Jeffrey Carter
2010-11-27 21:20     ` Dmitry A. Kazakov
2010-11-28 21:35       ` Maciej Sobczak
2010-11-29  8:41         ` Dmitry A. Kazakov
2010-11-29 10:12           ` Maciej Sobczak
2010-11-29 11:04             ` Dmitry A. Kazakov
2010-11-30  1:32               ` Randy Brukardt [this message]
2010-11-30  8:38                 ` Dmitry A. Kazakov
2010-11-30  9:14                 ` AdaMagica
2010-11-30 12:37                   ` Georg Bauhaus
2010-11-30 20:28                     ` Randy Brukardt
2010-11-30 20:31                   ` Randy Brukardt
2011-01-01 16:46                 ` Yannick Duchêne (Hibou57)
2011-01-02 10:14                   ` AdaMagica
2011-01-02 14:11                     ` Robert A Duff
2011-01-02 15:15                       ` AdaMagica
2011-01-02 15:28                         ` Robert A Duff
2011-01-02 15:38                       ` Alex Mentis
2011-01-02 15:44                         ` Robert A Duff
2011-01-03 21:38                           ` Randy Brukardt
2011-01-04  0:11                             ` Robert A Duff
2011-01-04 18:33                             ` Alex Mentis
2011-01-04 19:47                               ` Robert A Duff
2011-01-04 20:21                                 ` Randy Brukardt
2011-01-04 20:15                               ` Randy Brukardt
2010-11-29 15:24     ` Callback in Ada (User Data argument) Warren
2010-11-30  1:35       ` Randy Brukardt
2010-11-30 16:51         ` Warren
replies disabled

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