0
私はデータ型ツリーとデータ型のオペアンプを作り、今私が運転して文字列を生成する関数を作成したいと思います:すべての私のコードのhaskell、データツリー関数、文字列出力?
まず:
data Op = Add | Sub | Mult | Div
deriving(Eq,Show)
data Tree a b = Leaf a | Node (Tree a b) b (Tree a b)
deriving(Eq,Show)
マイツリー出力はこの文字列のようになります。最後には
tree = Node (Node (Node (Leaf 20) Add (Leaf 20)) Sub (Leaf 2)) Mult (Node (Leaf 33) Div (Leaf 3))
-- Node _ Mult _
-- / \
-- / \
-- / \
-- / \
-- / \
-- / \
-- Node _ Sub _ Node _ Div _
-- / \ / \
-- / \ / \
-- / Leaf 2 Leaf 33 Leaf 3
-- /
-- /
-- Node _ Add _
-- / \
-- / \
-- / \
-- Leaf 20 Leaf 30
"(((20+30)-2)*(33
。div
3))」
ビット宿題のように聞こえる、あなたは何を試してみましたか?何がうまくいったのですか?小さな木(1葉、1節、2葉...)を手動で文字列に変換することで問題に近づけてみてください。すべてのツリーに対してこれを行う関数を再帰的に定義するために、それを使用できないかどうかを確認してください。 – jakubdaniel