comp.lang.ada
 help / color / mirror / Atom feed
From: Lutz Donnerhacke <lutz@iks-jena.de>
Subject: Re: MI ammunition : linked lists
Date: Tue, 11 Nov 2003 12:58:55 +0000 (UTC)
Date: 2003-11-11T12:58:55+00:00	[thread overview]
Message-ID: <slrnbr1n8f.ru.lutz@taranis.iks-jena.de> (raw)
In-Reply-To: mailman.321.1068553502.25614.comp.lang.ada@ada-france.org

* Marius Amado Alves wrote:
> On Tue, 2003-11-11 at 09:32, Lutz Donnerhacke wrote:
>>   type Base is limited tagged record
>>     d : Datum;
>>   end record;
>>
>>   package Base_List1 is new Double_Linked_List (Base);  use Base_List1;
>>   package Base_List2 is new Double_Linked_List (List1); use Base_List2;
>
> I think you've failed to define List1 before using it here.

My fault.
 package Base_List2 is new Double_Linked_List (List1.Object); use Base_List2;

> But anyway this does not look like data being shared between lists.

generic
   type Node(<>) is abstract tagged limited private;
package Double_Linked_List is
   type Object is abstract limited new Node with private;
   type List ist limited private;
   ...
private
   type Node_Ptr is access all Object;
   type Object is abstract limited new Node with record
      next, prev : Node_Ptr := Object'Access;
   end record;
   
   type List is limited record
     start, end : Node_Ptr := List'Access;
   end record;
end Double_Linked_List;
   

> It looks like a list of lists, which a different thing entirely.
> Recursive containers.

No, it's a plain mixin.

> Actually in the case of data sharing between containers, I don't think
> you can escape some sort of pointing.

Of course, but you should hide them in the enclosing structure. It's bad
design to collect pointers explicitly.




  reply	other threads:[~2003-11-11 12:58 UTC|newest]

Thread overview: 24+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2003-11-06 16:32 MI ammunition : linked lists amado.alves
2003-11-06 16:46 ` Stephen Leake
2003-11-06 17:15 ` Frank J. Lhota
2003-11-08 10:27   ` Dmitry A. Kazakov
2003-11-06 17:16 ` Jean-Pierre Rosen
2003-11-06 18:15   ` Wes Groleau
2003-11-06 21:03   ` Simon Wright
2003-11-07 10:39     ` Dmitry A. Kazakov
2003-11-07 10:29 ` Dmitry A. Kazakov
2003-11-10 14:51 ` Lutz Donnerhacke
2003-11-10 17:52   ` Marius Amado Alves
2003-11-11  9:32     ` Lutz Donnerhacke
2003-11-11 12:24       ` Marius Amado Alves
2003-11-11 12:58         ` Lutz Donnerhacke [this message]
2003-11-11 16:09           ` Robert I. Eachus
2003-11-11 17:11             ` Marius Amado Alves
2003-11-12  9:21               ` Lutz Donnerhacke
  -- strict thread matches above, loose matches on Subject: below --
2003-11-06 17:26 amado.alves
2003-11-06 17:33 amado.alves
2003-11-06 19:01 amado.alves
2003-11-11 18:38 ` Georg Bauhaus
2003-11-11 21:27   ` Marius Amado Alves
2003-11-12  0:23     ` Georg Bauhaus
2003-11-12 11:29 amado.alves
replies disabled

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