我想在任何树中找到某个数字的出现次数。这是我的代码,但它给出了一个错误,我无法找到它发生的原因。
data Tree a = Empty | Node (a ,Tree a,Tree a) deriving (Show)
occurst _ Empty = 0 -- this line occurs error
occurst a ( Node (x,left,right) ) = if x==Empty then 0
else if a==x then 1 + (occurst a left) + (occurst a right)
else (occurst a left) + (occurst a right)
j=let t = Node (3 , Node (2 , Node (1 , Empty , Empty ) , Node (1 , Empty , Empty )),Node (1 , Node (2 , Node (1 , Empty , Empty ) , Node (1 , Empty , Empty )),Node (1,Empty,Empty)))
in occurst 1 t
错误信息是:
ERROR "treeExample.hs":95 - Cannot infer instance
*** Instance : Eq (Tree a)
*** Expression : occurst
输入输出必须是:
occurst 1 t -> 6
occurst 2 t -> 2
occurst 3 t ->1
occurst 4 t ->0