2016-06-19 4 views
2

Erlangの有向グラフをコピーするにはどうすればよいですか?ドキュメントにはコピー機能がないようです。手動でコピーを作成する必要がありますか?Erlangの有向グラフをコピーするには?

私はエリクシルでコーディングしています。

+0

なぜ可変ではない変数のコピーを作成しますか? – Pascal

+2

@Pascalの有向グラフは、erlangで変更可能です。パフォーマンス上の理由から、ETSを使用しています。 –

+0

ありがとう、それはパフォーマンスのために意味がありますが、それは非常に奇妙に見えると私はドキュメントでより大きな警告があるはずだと思います(あるプロセスから別のものへの有向グラフを渡すときに気をつけてください...多分コピーを作る理由: o) – Pascal

答えて

5

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"] 
+0

非常に新しい答え、ありがとう! –

関連する問題