私は任意のツリーでいくつかの数字の出現回数を見つけたいと思っています.そして、ここに私のコードがありますが、なぜそれが起こるのか分かりません。
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