【发布时间】:2019-04-23 07:33:59
【问题描述】:
我正在尝试创建一个预排序函数来遍历 IntTree。
树类如下
data IntTree = Empty | Branch IntTree Int IntTree deriving (Show, Eq)
我有两个问题 1. 我收到如下所示的错误。
E:\Haskell\Uebungsblatt_2_Aufgabe_2_a.hs:7:14: error:
* Expected kind `* -> Constraint', but `IntTree' has kind `*'
* In the type signature: preorder :: (IntTree c) => c -> [a]
|
7 | preorder :: (IntTree c) => c->[a]
| ^^^^^^^^^
[Finished in 0.5s]
我不明白为什么。它们发生在以下行
preorder :: (IntTree c) => c->[a]
我认为下面这行是不对的。我想我需要写其他表达式而不是 " l : preorder a : preorder r:[] "
preorder Branch a l r = l : preorder a : preorder r:[]
提前感谢您的帮助!!
main :: IO () -- This says that main is an IO action.
main = return () -- This tells main to do nothing
data IntTree = Empty | Branch IntTree Int IntTree deriving (Show, Eq)
preorder :: (IntTree c) => c->[a]
preorder Empty = []
preorder Branch Empty x Empty = [x]
preorder Branch a l r = l : preorder a : preorder r:[]
【问题讨论】: