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