From: Matthew Heaney <mheaney@on2.com>
Subject: Re: OO Style with Ada Containers
Date: Tue, 27 Nov 2007 12:12:35 -0800 (PST)
Date: 2007-11-27T12:12:35-08:00 [thread overview]
Message-ID: <b12fa2b2-3338-4388-bb79-0c2db84d4d1a@b15g2000hsa.googlegroups.com> (raw)
In-Reply-To: 1196191906.24671.119.camel@kartoffel
On Nov 27, 2:31 pm, Georg Bauhaus <rm.tsoh+bauh...@maps.futureapps.de>
wrote:
> On Mon, 2007-11-26 at 12:29 -0800, Matthew Heaney wrote:
> > generic
> > with procedure Process (Word : String);
> > procedure Generic_Scan (File : File_Type);
>
> Hm. Isn't a local variable together with a local function
> modifying the local variable a viable option?
Yes, that local function would be the generic actual in my example.
> There is no
> 'Access then, but only "access" in a logical sense. The
> variable/constant is not passed to the function but still
> visible and accessible to the function.
Yes, of course.
> One could even wrap
> them both in the same local package. The package might not
> establish coupling in a type, but nevertheless it establishes
> coupling of things that belong together.
I'm not sure I was clear here. I meant:
package Scanner is
generic
with procedure Process (Word : String);
procedure Generic_Scan (File : File_Type);
end Scanner;
Actually, in Ada05 you don't need the generic at all:
package Scanner is
procedure Scan
(File : File_Type,
Process : not null access Process (Word : String));
end Scanner;
Then you could say:
declare
M : Map;
procedure Insert_Word (Word : String) is
procedure Inc (Count : in out Natural) is
begin
Count := Count + 1;
end;
C : Cursor;
B : Boolean;
begin
M.Insert (Word, 0, C, B);
M.Update_Element (C, Inc'Access);
end;
F : File_Type;
begin
Open (F, ...);
Scanner.Scan (F, Insert_Word'Access);
... -- do something with map
end;
next prev parent reply other threads:[~2007-11-27 20:12 UTC|newest]
Thread overview: 66+ messages / expand[flat|nested] mbox.gz Atom feed top
2007-11-14 23:28 OO Style with Ada Containers braver
2007-11-14 23:50 ` Adam Beneschan
2007-11-14 23:59 ` braver
2007-11-15 0:24 ` braver
2007-11-15 9:36 ` Ludovic Brenta
2007-11-15 10:36 ` braver
2007-11-15 11:35 ` Ludovic Brenta
2007-11-15 13:50 ` braver
2007-11-19 2:45 ` Matthew Heaney
2007-11-15 18:22 ` braver
2007-11-15 20:18 ` Ludovic Brenta
2007-11-19 2:48 ` Matthew Heaney
2007-11-19 2:47 ` Matthew Heaney
2007-11-19 2:39 ` Matthew Heaney
2007-11-19 2:38 ` Matthew Heaney
2007-11-19 2:36 ` Matthew Heaney
2007-11-19 2:24 ` Matthew Heaney
2007-11-23 10:28 ` braver
2007-11-23 13:29 ` Martin Krischik
2007-11-23 14:19 ` Georg Bauhaus
2007-11-25 13:38 ` Ludovic Brenta
2007-11-26 3:58 ` Matthew Heaney
2007-11-26 3:55 ` Matthew Heaney
2007-11-23 22:25 ` braver
2007-11-23 22:46 ` Pascal Obry
2007-11-23 22:52 ` braver
2007-11-26 4:09 ` Matthew Heaney
2007-11-26 4:07 ` Matthew Heaney
2007-11-26 4:03 ` Matthew Heaney
2007-11-26 13:45 ` Matthew Heaney
2007-11-26 19:09 ` braver
2007-11-26 20:29 ` Matthew Heaney
2007-11-27 19:31 ` Georg Bauhaus
2007-11-27 20:12 ` Matthew Heaney [this message]
2007-11-25 14:08 ` braver
2007-11-26 4:21 ` Matthew Heaney
2007-11-19 1:04 ` Matthew Heaney
2007-11-15 8:43 ` Dmitry A. Kazakov
2007-11-15 14:04 ` Maciej Sobczak
2007-11-19 2:53 ` Matthew Heaney
2007-11-19 13:44 ` Maciej Sobczak
2007-11-19 14:44 ` Martin
2007-11-19 15:51 ` Matthew Heaney
2007-11-19 17:33 ` Markus E L
2007-11-19 21:29 ` Maciej Sobczak
2007-11-19 22:16 ` Matthew Heaney
2007-11-19 22:22 ` Matthew Heaney
2007-11-20 14:11 ` Maciej Sobczak
2007-11-20 17:00 ` Matthew Heaney
2007-11-20 17:17 ` Matthew Heaney
2007-11-20 21:13 ` Maciej Sobczak
2007-11-20 21:57 ` Matthew Heaney
2007-11-21 4:51 ` Matthew Heaney
2007-11-21 9:18 ` Georg Bauhaus
2007-11-21 15:59 ` Maciej Sobczak
2007-11-21 17:41 ` Georg Bauhaus
2007-11-21 22:25 ` Jeffrey R. Carter
2007-11-20 18:06 ` Georg Bauhaus
2007-11-19 16:19 ` Dmitry A. Kazakov
2007-11-19 20:45 ` Maciej Sobczak
2007-11-20 2:24 ` Matthew Heaney
2007-11-20 9:06 ` Dmitry A. Kazakov
2007-11-20 12:16 ` Georg Bauhaus
2007-11-21 15:17 ` Dmitry A. Kazakov
2007-11-19 2:50 ` Matthew Heaney
2007-11-19 1:03 ` Matthew Heaney
replies disabled
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox