Erlangの有向グラフモジュールは、状態の変化によって私を驚かせました。Erlang Digraphsの状態
Erlangの他のデータ構造モジュールを扱う場合、例えばsetsモジュール、渡されたデータ構造のインスタンスは変更されません。この関数は、変更された新しいバージョンを返します。
>S = sets:new().
>sets:size(S).
0
>T = sets:add_element(S, "element").
>sets:size(S).
0
>sets:size(T).
1
これは、有向グラフモジュールを扱うときの動作ではありません。
>G = digraph:new().
>digraph:no_vertices(G).
0
>digraph:add_vertex(G, "vertex").
>digraph:no_vertices(G).
1
第1に、この点で、なぜ有向グラフライブラリーが異なるのですか?
第二に、さらに重要なのは、有向グラフモジュールが既存のバインディングに対して新しい状態をどのように追加しているかです。
状態が、既存および変更されていないバインディングGを使用して、有向グラフモジュールが識別する別のプロセスに格納されていると仮定します。または、バインディングに関連する状態を変更する他の方法がありますか?
おかげで、私は彼らが二重字を扱ったように見えたすべてのプロセスを見つけることができませんでした。 状態が現在のプロセスの外に保存されていることを示すerlangモジュールには何らかの規則がありますか? –
いいえ私はそこにいるとは思わない。しかし、私がdigraph:new()からの戻り値を見たとき、それは他のものへの参照と著しく見えて、 "他のもの"を格納する通常の場所はetsです... –
私は、説明部分の文書の中で、今はそうではありません。 –