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