comp.lang.ada
 help / color / mirror / Atom feed
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;



  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