拥有二叉树的 Eq 实例



我正在尝试为二叉树创建自己的Eq实例:

data Tree a = Empty | Node a (Tree a) (Tree a) 
instance Eq a => Eq (Tree a) where
    (Empty == Empty) = True
    (Empty == _)     = False
    (_ == Empty)     = False
    (Node x xl xr) == (Node y yl yr) = (x == y) && xl == yl && xr == yr

我收到以下错误消息:

Parse error in pattern: Empty == Empty

你能告诉我我错在哪里吗?

定义运算符或函数时不得使用括号。请记住

a ???? b

只是语法糖

(????) a b

因此,您的模式应如下所示:

Empty == Empty = True
Empty == _     = False
_ == Empty     = False
Node x xl xr == Node y yl yr = ...

最新更新