こんにちは、親と子の間の双方向参照を保持するツリーを作成したいと考えています。しかし、最初のオブジェクトを作成したときに他のオブジェクトをまだ持っていないため、それを参照できないため、達成することは不可能に思えます。ここにいくつかのサンプルコードがあります。
-record(node,{name,children,root}).
main()->
A = #node{name="node-A",
children=[B], %variable B is unbound
root=nil},
B = #node{name="node-B",
children=[],
root=A},
Tree = A.
この問題の別の例は、二重リンク リスト (http://en.wikipedia.org/wiki/Doubly_linked_list) の実装です。
-record(node,{prev,name,next}).
main()->
A = #node{prev=nil,
name="node-A",
next=B}, % variable B is unbound
B = #node{prev=A,
name="node-B",
next=nil},
LinkedList = A.
この種の構造を実装する方法はありますか。