From mboxrd@z Thu Jan 1 00:00:00 1970 X-Spam-Checker-Version: SpamAssassin 3.4.4 (2020-01-24) on polar.synack.me X-Spam-Level: X-Spam-Status: No, score=-1.9 required=5.0 tests=BAYES_00,FREEMAIL_FROM autolearn=unavailable autolearn_force=no version=3.4.4 Path: eternal-september.org!reader01.eternal-september.org!reader02.eternal-september.org!news.eternal-september.org!feeder.eternal-september.org!aioe.org!.POSTED!not-for-mail From: Victor Porton Newsgroups: comp.lang.ada Subject: Re: Simple Components (Generic_Directed_Graph) Date: Mon, 30 Oct 2017 16:58:53 +0200 Organization: Aioe.org NNTP Server Message-ID: References: NNTP-Posting-Host: p7dn7ovnlfKNrsGJsG/4aA.user.gioia.aioe.org Mime-Version: 1.0 Content-Type: text/plain; charset="ISO-8859-1" Content-Transfer-Encoding: 7Bit X-Complaints-To: abuse@aioe.org User-Agent: KNode/4.14.10 X-Notice: Filtered by postfilter v. 0.8.2 Xref: news.eternal-september.org comp.lang.ada:48664 Date: 2017-10-30T16:58:53+02:00 List-Id: Dmitry A. Kazakov wrote: > On 2017-10-30 11:41, Victor Porton wrote: > >> I do not understand your logic in Generic_Directed_Graph: >> >> The procedures like >> >> procedure Disconnect (Parent : Node; Child : Node); >> >> do not take "Graph" argument. > > A graph consists of connected nodes. Each node is in and a graph. > >> Does it mean that there exists just one graph (per instantiation)? > > No. If two nodes are mutually unreachable you have two graphs. > >> This looks wrong for me. First it is using global variables. > > It uses referential semantics. Node is an access type to the type you > pass to the package when you instantiate it. E.g. if you want a graph of > Strings you instantiate the package with String. Then Node is a pointer > to string. > > The notion of scope does not really applied to the structures like > graph. You can scope the pool you pass to the instance. You can scope > nodes with some logic attached when a node leaves its scope. But > otherwise it makes little sense to talk about the scope of a graph. What's about having multiple graphs for the situation if when A and B are of type T then A=B implies A'Access=B'Access? It seems in this situation we cannot have multiple graphs of nodes of type T. It yet seems bad for me, but may I mistake. Maybe it's worth to create an alternative graph type (with every graph being a full-fledged object)? However I do not quite understand your logic, maybe you are right after all and this is not necessary. -- Victor Porton - http://portonvictor.org