5

型シグネチャを表すデータ構造があります。このデータ構造は、最初の図の赤い部分に例示されているツリーです。私は黒いものを手に入れたいと思っていますが、これまでのところオレンジ色のもの (2 番目の写真) しかありません。これはタイプ ツリーですが、左側に関連付けられています。

ここに画像の説明を入力

これが私がこれまでに手に入れたオレンジの木です(オレンジ色の矢印に従ってください)

ここに画像の説明を入力

この問題は、ツリーをきれいに出力してからパーサー コンビネーターで解析することで解決しましたが、この非効率性は望ましくありません。オレンジの木から黒の木に変換する別のアルゴリズムを作成できると思いますが、2 つのアルゴリズムを作成するのではなく、1 つのみを作成できればよいでしょう。

ソリューションを書いているので、これを Haskell としてタグ付けします。赤い木のようなデータ構造を取得するコードを提供することはできますが、解決策の試みが複雑になるだけだと思います..

このアルゴリズムに名前があるかどうか、および/または赤いツリーのオペレーター位置の名前が何であるかを知りたいです。プレフィックスですか?

ありがとう。

4

1 に答える 1