Я пытаюсь создать функцию предварительного заказа для обхода IntTree.
Класс Tree выглядит следующим образом
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:[]