У меня есть пользовательский тип данных:
data Tree a = Node a [Tree a]
дерево примеров:
tree1 = Node 3 [Node 4 [Node 3 [], Node 2 []], Node 5 []]
и я пытаюсь создать функцию для подсчета узлов дерева.
У меня есть функция:
numNodes :: Num p => Tree a -> p
numNodes(Node a []) = 0
numNodes(Node a b) = 1 + numNodes b
Но это не совсем работает, где я не прав?
Edit:
Выход компилятора:
• Couldn't match type ‘Tree a’ with ‘[Tree a]’
Expected type: [Tree a] -> p
Actual type: Tree a -> p
• Relevant bindings include
numNodes :: [Tree a] -> p (bound at tree.hs:28:1)
28 | numNodes(Node a []) = 0