* recursive map specification @ 2019-06-25 8:21 mario.blunk.gplus 2019-06-25 8:44 ` Egil H H 2019-06-26 5:23 ` Randy Brukardt 0 siblings, 2 replies; 6+ messages in thread From: mario.blunk.gplus @ 2019-06-25 8:21 UTC (permalink / raw) Hello, I want to specify a recursive map. To simplify the problem I use the example of a person and its ancestors and ancestors ... The problem does not seem special but I haven't found a solution. The approach below does not compile: type person is record name : unbounded_string; end record; package tree is new ordered_maps ( key_type => person, element_type => tree.map -- compiler error. "tree" undefined ); Any ideas ? Thanks a lot ! ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: recursive map specification 2019-06-25 8:21 recursive map specification mario.blunk.gplus @ 2019-06-25 8:44 ` Egil H H 2019-06-25 9:09 ` mario.blunk.gplus 2019-06-26 5:23 ` Randy Brukardt 1 sibling, 1 reply; 6+ messages in thread From: Egil H H @ 2019-06-25 8:44 UTC (permalink / raw) On Tuesday, June 25, 2019 at 10:21:03 AM UTC+2, mario.b...@gmail.com wrote: > Hello, > > I want to specify a recursive map. To simplify the problem I use the example of a person and its ancestors and ancestors ... The problem does not seem special but I haven't found a solution. The approach below does not compile: > > type person is record > name : unbounded_string; > end record; > > package tree is new ordered_maps > ( > key_type => person, > element_type => tree.map -- compiler error. "tree" undefined > ); > > Any ideas ? Thanks a lot ! Is there a reason you don't use Ada.Containers.Multiway_Trees instead? -- ~egilhh ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: recursive map specification 2019-06-25 8:44 ` Egil H H @ 2019-06-25 9:09 ` mario.blunk.gplus 2019-06-25 9:22 ` Egil H H 0 siblings, 1 reply; 6+ messages in thread From: mario.blunk.gplus @ 2019-06-25 9:09 UTC (permalink / raw) On Tuesday, June 25, 2019 at 10:44:11 AM UTC+2, Egil H H wrote: > On Tuesday, June 25, 2019 at 10:21:03 AM UTC+2, mario.b...@gmail.com wrote: > > Hello, > > > > I want to specify a recursive map. To simplify the problem I use the example of a person and its ancestors and ancestors ... The problem does not seem special but I haven't found a solution. The approach below does not compile: > > > > type person is record > > name : unbounded_string; > > end record; > > > > package tree is new ordered_maps > > ( > > key_type => person, > > element_type => tree.map -- compiler error. "tree" undefined > > ); > > > > Any ideas ? Thanks a lot ! > > > Is there a reason you don't use Ada.Containers.Multiway_Trees instead? > > > -- > ~egilhh It is the first time I read about multiway_trees. Do you have a simple example ready ? Otherwise I would dig into the package docs which lack practical examples... Thanks ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: recursive map specification 2019-06-25 9:09 ` mario.blunk.gplus @ 2019-06-25 9:22 ` Egil H H 2019-06-25 9:24 ` mario.blunk.gplus 0 siblings, 1 reply; 6+ messages in thread From: Egil H H @ 2019-06-25 9:22 UTC (permalink / raw) On Tuesday, June 25, 2019 at 11:09:20 AM UTC+2, mario.b...@gmail.com wrote: > On Tuesday, June 25, 2019 at 10:44:11 AM UTC+2, Egil H H wrote: > > On Tuesday, June 25, 2019 at 10:21:03 AM UTC+2, mario.b...@gmail.com wrote: > > > Hello, > > > > > > I want to specify a recursive map. To simplify the problem I use the example of a person and its ancestors and ancestors ... The problem does not seem special but I haven't found a solution. The approach below does not compile: > > > > > > type person is record > > > name : unbounded_string; > > > end record; > > > > > > package tree is new ordered_maps > > > ( > > > key_type => person, > > > element_type => tree.map -- compiler error. "tree" undefined > > > ); > > > > > > Any ideas ? Thanks a lot ! > > > > > > Is there a reason you don't use Ada.Containers.Multiway_Trees instead? > > > > > > -- > > ~egilhh > > It is the first time I read about multiway_trees. Do you have a simple example ready ? Otherwise I would dig into the package docs which lack practical examples... Thanks Sorry, I haven't used that package myself, but there's some additional explanation and example in the Rationale, http://www.ada-auth.org/standards/12rat/html/Rat12-8-4.html -- ~egilhh ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: recursive map specification 2019-06-25 9:22 ` Egil H H @ 2019-06-25 9:24 ` mario.blunk.gplus 0 siblings, 0 replies; 6+ messages in thread From: mario.blunk.gplus @ 2019-06-25 9:24 UTC (permalink / raw) On Tuesday, June 25, 2019 at 11:22:25 AM UTC+2, Egil H H wrote: > On Tuesday, June 25, 2019 at 11:09:20 AM UTC+2, mario.b...@gmail.com wrote: > > On Tuesday, June 25, 2019 at 10:44:11 AM UTC+2, Egil H H wrote: > > > On Tuesday, June 25, 2019 at 10:21:03 AM UTC+2, mario.b...@gmail.com wrote: > > > > Hello, > > > > > > > > I want to specify a recursive map. To simplify the problem I use the example of a person and its ancestors and ancestors ... The problem does not seem special but I haven't found a solution. The approach below does not compile: > > > > > > > > type person is record > > > > name : unbounded_string; > > > > end record; > > > > > > > > package tree is new ordered_maps > > > > ( > > > > key_type => person, > > > > element_type => tree.map -- compiler error. "tree" undefined > > > > ); > > > > > > > > Any ideas ? Thanks a lot ! > > > > > > > > > Is there a reason you don't use Ada.Containers.Multiway_Trees instead? > > > > > > > > > -- > > > ~egilhh > > > > It is the first time I read about multiway_trees. Do you have a simple example ready ? Otherwise I would dig into the package docs which lack practical examples... Thanks > > > Sorry, I haven't used that package myself, but there's some additional explanation and example in the Rationale, http://www.ada-auth.org/standards/12rat/html/Rat12-8-4.html > > > -- > ~egilhh Yep, I just found that too. Thanks. Time for reading :-) ^ permalink raw reply [flat|nested] 6+ messages in thread
* Re: recursive map specification 2019-06-25 8:21 recursive map specification mario.blunk.gplus 2019-06-25 8:44 ` Egil H H @ 2019-06-26 5:23 ` Randy Brukardt 1 sibling, 0 replies; 6+ messages in thread From: Randy Brukardt @ 2019-06-26 5:23 UTC (permalink / raw) <mario.blunk.gplus@gmail.com> wrote in message news:187147dc-94fe-4019-bc42-5b214db452db@googlegroups.com... > Hello, > > I want to specify a recursive map. To simplify the problem I use the > example of a person and its ancestors and ancestors ... The problem does > not seem special but I haven't found a solution. The approach below does > not compile: > > type person is record > name : unbounded_string; > end record; > > package tree is new ordered_maps > ( > key_type => person, > element_type => tree.map -- compiler error. "tree" undefined > ); > > Any ideas ? Thanks a lot ! This is the reason that we defined the Multiway_Tree, as it isn't sensible to define a recursive container. (Otherwise, a recursive list is essentially a tree.) If you also need a map (for instance, to make the names easily found), I'd suggest making a map of tree cursors, and keep the real data in the tree (where the relationships also live). Randy. ^ permalink raw reply [flat|nested] 6+ messages in thread
end of thread, other threads:[~2019-06-26 5:23 UTC | newest] Thread overview: 6+ messages (download: mbox.gz / follow: Atom feed) -- links below jump to the message on this page -- 2019-06-25 8:21 recursive map specification mario.blunk.gplus 2019-06-25 8:44 ` Egil H H 2019-06-25 9:09 ` mario.blunk.gplus 2019-06-25 9:22 ` Egil H H 2019-06-25 9:24 ` mario.blunk.gplus 2019-06-26 5:23 ` Randy Brukardt
This is a public inbox, see mirroring instructions for how to clone and mirror all data and code used for this inbox