【发布时间】:2011-03-16 19:27:26
【问题描述】:
我有以下 Haskell 数据定义:
data Tree = Leaf Int | Node Int Tree Tree deriving Show
我编写了以下程序来遍历树的前序、中序和后序:
preorder(Leaf n) = n
preorder(Node n t0 t1) = [n] ++ preorder t0 ++ preorder t1
inorder(Leaf n) = n
inorder(Node n t0 t1) = inorder t0 ++ [n] ++ inorder t1
postorder(Leaf n) = n
postorder(Node n t0 t1) = postorder t0 ++ postorder t1 ++ [n]
我得到的错误是:
- Type error in application
*** Expression : preorder t0 ++ preorder t1
*** Term : preorder t1
*** Type : Int
*** Does not match : [a]
我需要以适当的顺序返回一个包含所有树整数的列表。非常感谢任何帮助,因为我是 Haskell 的新手。
【问题讨论】: