4

このような単純なツリーが必要で、すべての修正が含まれています-

type 'a Tree =
    | Leaf of 'a
    | Branch of 'a Tree list

このようなものがすでに利用可能で、追加、削除、マップ、フィルター、折り畳み機能などが備わっている必要がありますが、見つかりません。OCamlから移植できるものすら見当たりません...必要に応じて自分で書くことができると思います。

編集:ツリーの構造をより明確になるように変更しました。

4

1 に答える 1

1

add Tree Tree難しいのは、単純なツリー(たとえば)が誰にも使用されないことだと思います。より具体的なタイプのツリーを指定せずに、スキャン、タンキングパフォーマンスによってこれらすべてのメソッドを実装する必要があります。

さらに、一般的な設計では共有データ構造がほとんどないため、不変ツリーのインプレース更新は非常にコストがかかります。

最後に、何らかのバックトラッキングを許可する場合は、不変のツリーを毎回完全に書き直す必要があります。

于 2012-08-10T17:07:14.350 に答える