私はこの非常に単純な再帰関数を持っており、charのリストからツリーにブランチを追加しています。定義の代わりに再帰関数の値を渡す方法
type tree = Node of bool ref * (char * tree) list ref
let rec create_branch lc = function
[] -> Node(ref true, ref[])
| x :: l -> Node(ref false, ref [(x, (create_branch l))])
私はこれが本当だろう最終ノードまでchar型の遷移と「偽」のノードの束を持っているでしょう1つの分岐のみを含むツリーを作成するために期待されます。
しかし、私はエラーを取得しています:
エラー:この式は型を持つ(のchar *(char型のリスト - >木))リストの参照 をしかし、式がタイプ(のchar *木)リストrefの期待されました タイプchar list - > treeはタイプツリーと互換性がありません
私の再帰呼び出しは何らかの理由で実際の関数への参照として渡されているようです - > tree))を返します。これは単純にツリーになります。
私が間違っていることを知りたいですか?
それは働いた、または少なくとも私のタイプの問題を修正しました。実際のコード作業を行うにはまだ多少の作業が必要ですが、多くの手助けをしました。ありがとうございました。 OCamlはかなり奇妙です。 –