comp.lang.ada
 help / color / mirror / Atom feed
From: Adam Beneschan <adam@irvine.com>
Subject: Re: Access type to member procedure of instance (Object Oriented programming in Ada)
Date: Mon, 19 Nov 2012 14:19:46 -0800 (PST)
Date: 2012-11-19T14:19:46-08:00	[thread overview]
Message-ID: <a128a093-db52-4c18-bfd7-a450b26ac00a@googlegroups.com> (raw)
In-Reply-To: <z924j8wj7a2i.xugkyiyx734q$.dlg@40tude.net>

On Monday, November 19, 2012 1:26:58 PM UTC-8, Dmitry A. Kazakov wrote:
> On Mon, 19 Nov 2012 10:23:13 -0800 (PST), Adam Beneschan wrote:
> 
> 
> 
> > This doesn't look at all like what I'm talking about, since &Example::f
> > still refers to a method defined for the class Example but without
> > reference to a particular object.  Something equivalent would be if you
> > could say &object.f (or maybe &object.*p) and store the result of that in
> > a pointer that could be called later.
> 
> What would you do for:
> 
>    type T is tagged ...
> 
>    procedure Foo (X, Y, Z : T) ;
> 
> Would the closure carry three objects with it?

What I'm proposing is a way that one could say something like

   Object.Operation'access

In Ada, with regard to your procedure Foo, you can say

   X.Foo (Y, Z)

That's just the way the language is.  The Object.Operation notation doesn't treat the three parameters as having equivalent importance.  If you don't like this when using Foo, then don't use that feature, and you probably wouldn't want to use something like X.Foo'access.  And it probably shouldn't be used on a procedure like that.  But it might help with the case that I think is a lot more common, where a procedure or function *is* considered to operate primarily on one tagged object more than others.


> If closures to be supported then they better be a bit more universal than 
> just one tagged object + one operation.

Why?  Is there a rule that says that if a proposed change doesn't fix the entire world, then we shouldn't propose something that improves part of the world?  I was trying to suggest something that **might** be worthwhile by making certain things easier---I don't know for sure that it's worthwhile, but the fact that someone decided to add this to C# and that someone here asked about it makes me think it **could** be worthwhile---but in any case, I was **not** attempting to try to elevate Ada to Programming Language Nirvana Perfection.  So suppose it would help in a lot of cases but not help in all cases.  So what?

                                -- Adam



  reply	other threads:[~2012-11-19 22:19 UTC|newest]

Thread overview: 47+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-11-19  9:59 Access type to member procedure of instance (Object Oriented programming in Ada) ake.ragnar.dahlgren
2012-11-19 11:13 ` Georg Bauhaus
2012-11-19 11:39 ` Brian Drummond
2012-11-20 11:43   ` Brian Drummond
2012-11-20 21:57     ` Randy Brukardt
2012-11-19 13:03 ` sbelmont700
2012-11-19 16:18 ` Adam Beneschan
2012-11-19 17:02   ` Peter C. Chapin
2012-11-19 18:23     ` Adam Beneschan
2012-11-19 20:57       ` Peter C. Chapin
2012-11-19 21:26       ` Dmitry A. Kazakov
2012-11-19 22:19         ` Adam Beneschan [this message]
2012-11-20 10:12           ` Dmitry A. Kazakov
2012-11-20 21:51             ` Randy Brukardt
2012-11-21  8:24               ` Dmitry A. Kazakov
2012-11-21 22:19                 ` Randy Brukardt
2012-11-20 10:59     ` Brian Drummond
2012-11-19 20:22 ` ake.ragnar.dahlgren
2012-11-20 11:16   ` Brian Drummond
2012-11-19 20:52 ` ake.ragnar.dahlgren
2012-11-19 21:56   ` Dmitry A. Kazakov
2012-11-22  9:49     ` ake.ragnar.dahlgren
2012-11-19 22:13   ` sbelmont700
2012-11-19 23:59 ` Randy Brukardt
2012-11-20  0:05   ` Randy Brukardt
2012-11-20  1:00     ` Adam Beneschan
2012-11-20 21:38       ` Randy Brukardt
2012-11-20 23:43         ` Adam Beneschan
2012-11-21 22:12           ` Randy Brukardt
2012-11-22  1:59             ` Adam Beneschan
2012-11-29  2:43               ` Randy Brukardt
2012-11-20  0:52   ` Adam Beneschan
2012-11-20 21:34     ` Randy Brukardt
2012-11-20 11:28   ` Brian Drummond
2012-11-20 14:27     ` Georg Bauhaus
2012-11-20 15:52     ` Adam Beneschan
2012-11-22  9:47 ` ake.ragnar.dahlgren
2012-11-22 10:25   ` Dmitry A. Kazakov
2012-12-02 20:42     ` ake.ragnar.dahlgren
2012-12-03 11:21       ` Dmitry A. Kazakov
2012-12-03 20:21         ` ake.ragnar.dahlgren
2012-12-03 22:15           ` Dmitry A. Kazakov
2012-12-25 21:51           ` Gustaf Thorslund
2012-12-26 18:11             ` ake.ragnar.dahlgren
2012-11-22 12:13   ` Brian Drummond
2012-12-03 16:17     ` ake.ragnar.dahlgren
2012-12-03 21:56       ` Brian Drummond
replies disabled

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