comp.lang.ada
 help / color / mirror / Atom feed
From: Maciej Sobczak <see.my.homepage@gmail.com>
Subject: Re: Callback in Ada
Date: Mon, 29 Nov 2010 02:12:33 -0800 (PST)
Date: 2010-11-29T02:12:33-08:00	[thread overview]
Message-ID: <afd06b3b-c606-4756-8b82-8a21a8f50804@e4g2000vbi.googlegroups.com> (raw)
In-Reply-To: chcmits7h2ee$.13wauqjel7qky$.dlg@40tude.net

On Nov 29, 9:41 am, "Dmitry A. Kazakov" <mail...@dmitry-kazakov.de>
wrote:

> > And now an equivalent example with functions, please. :-)
>
>     procedure Foo (Closure : function return Integer);
>     function Bar return Integer;
>     ...
>     Foo (Bar);
>
> There is no difference.

There is.

> * Ada is not bottom up as C++, it can resolve using the type of the result.

But here there is no type of the result. Bar is not even called, so
there is no result on which you could disambiguate this construct.
In order to make your reasoning complete you would have to introduce
additional way of using function names:

1. This way:

   Bar

would mean that the function is called. The type of result can be used
to disambiguate the overloaded calls. For the brave: watch out
enumerations.

2. This way:

   Bar

would mean that the function is *not* called, but is denoted as a
first-class entity.

Oops, they look the same. You have to disambiguate them. And once you
do, you have to disambiguate *again*, if it happens to be 1. above.
This would mean two-phase overload disambiguation. Don't even try to
combine these two phases, that would be complete mess.

Probably it would be better to add some attribute (like in qualified
expressions) to hint the compiler whether you intend to use the
function as an entity or to actually call it - but then, you gain
absolutely nothing with regard to the existing 'Access attribute,
which you consider as being broken.

In any case, this:

   Foo (Bar);

would add yet another ambiguity to what is already too heavily
overloaded syntax. Hardly readable at all.

--
Maciej Sobczak * http://www.inspirel.com



  reply	other threads:[~2010-11-29 10:12 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 [this message]
2010-11-29 11:04             ` Dmitry A. Kazakov
2010-11-30  1:32               ` Randy Brukardt
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