2
Erlangの有向グラフをコピーするにはどうすればよいですか?ドキュメントにはコピー機能がないようです。手動でコピーを作成する必要がありますか?Erlangの有向グラフをコピーするには?
私はエリクシルでコーディングしています。
Erlangの有向グラフをコピーするにはどうすればよいですか?ドキュメントにはコピー機能がないようです。手動でコピーを作成する必要がありますか?Erlangの有向グラフをコピーするには?
私はエリクシルでコーディングしています。
Vertices = digraph:vertices(Digraph)
とdigraph_utils:subgraph/2
を使用すると、全体の有向グラフをコピーするのに最適な方法です。
試験:
Digraph2
にコピーし、それだけDigraph2
に"C"
頂点を追加することにより、異なるグラフであることを確認、Digraph
でA-> Bのグラフを作成します。
1> Digraph = digraph:new().
{digraph,16400,20497,24594,true}
2> digraph:add_vertex(Digraph,"A").
"A"
3> digraph:add_vertex(Digraph,"B").
"B"
4> digraph:add_edge(Digraph,"A","B").
['$e'|0]
5> Digraph2 = digraph_utils:subgraph(Digraph, digraph:vertices(Digraph)).
{digraph,28691,32788,36885,true}
6> digraph:add_vertex(Digraph2, "C").
"C"
7> digraph:vertices(Digraph).
["B","A"]
8> digraph:vertices(Digraph2).
["C","B","A"]
非常に新しい答え、ありがとう! –
なぜ可変ではない変数のコピーを作成しますか? – Pascal
@Pascalの有向グラフは、erlangで変更可能です。パフォーマンス上の理由から、ETSを使用しています。 –
ありがとう、それはパフォーマンスのために意味がありますが、それは非常に奇妙に見えると私はドキュメントでより大きな警告があるはずだと思います(あるプロセスから別のものへの有向グラフを渡すときに気をつけてください...多分コピーを作る理由: o) – Pascal