Das Erlang-Digraphen-Modul überraschte mich mit der Mutation des Zustands.
Beim Umgang mit anderen Datenstrukturmodulen in Erlang, z. B. dem Sets-Modul, wird die Instanz der übergebenen Datenstruktur nicht verändert. Die Funktion gibt eine neue, geänderte Version zurück, z.B.
>S = sets:new().
>sets:size(S).
0
>T = sets:add_element(S, "element").
>sets:size(S).
0
>sets:size(T).
1
Dies ist beim Digraphenmodul nicht der Fall.
>G = digraph:new().
>digraph:no_vertices(G).
0
>digraph:add_vertex(G, "vertex").
>digraph:no_vertices(G).
1
Erstens: Warum ist die Digraphenbibliothek in dieser Hinsicht anders?
Zweitens, und das ist noch wichtiger, wie fügt das Digraphenmodul neue Zustände zu einer bestehenden Bindung hinzu?
Ich nehme an, dass der Zustand in einem anderen Prozess gespeichert wird, den das Digraphenmodul mit Hilfe der bestehenden und unveränderten Bindung G identifiziert. Ist dies der Fall? Oder gibt es andere Möglichkeiten, den mit einer Bindung verbundenen Zustand zu ändern?