私は、分離した結合とレコードを使ってグラフを表現しようとしています。次のコードは構文エラーの原因となります。彼らがお互いを参照するときに2つの変数を定義する方法は?OCamlでエッジリストを使用してグラフデータを作成する方法は?
type 'a vertex =
|Empty
|Vertex of 'a * 'a list;; (*a tuple consisting of any type of element and a list of vertex*);
let v0 = Vertex(0,[v1]) in
let v1=Vertex(1,[v0]);;
私はへのコードを修正した場合:
let rec v0 = Vertex(0,[v1]) and v1=Vertex(1,[v0]);;
私はV0を取得します:
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex (1,
[Vertex (0,
[Vertex
(1,
[Vertex
(0,
[Vertex
(1,
[Vertex
(0,
[Vertex
(1,
[Vertex
(0,
[Vertex
(1,
[Vertex
(0,
[Vertex
(1,
[Vertex
(0,
[Vertex
(1,
[Vertex
(0,
[Vertex
(1,
[Vertex
(0,
[Vertex
(1,
[Vertex
(0,
[...])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])])]
です
何...私が欲しいものではない表示されますベスト・ウェイ頂点のリストまたは配列を含むグラフ・レコードを定義するには?あなたのタイプの定義に誤りがあり
Error: The type constructor array expects 1 argument(s),
but is here applied to 0 argument(s)
作成した値は、あなたが求めた値です。循環構造には無限の表現があるので、それを印刷すると奇妙に見えます。 OCamlはあるレベルのネスティングの後に出力を切り捨てて、実際に無限の文字列を書き出すのを防ぎます。 –
。ありがとう。 – lkahtz