У меня есть следующее определение данных на 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.