小编Ste*_*len的帖子

模糊发生'=='

我只是在学习Haskell,并且仍在努力弄清楚事情是如何运作的.

所以我正在创建一个可以包含Int和的混合列表类Char.

data Algebra = Empty
|   Nmbr Int Algebra
|   Smbl Char Algebra
Run Code Online (Sandbox Code Playgroud)

然后我尝试将它作为一个实例 Eq

instance Eq Algebra where
Empty == Empty              = True
(Nmbr x xl) == (Nmbr y yl)  = (x == y) && (xl==yl)
(Smbl x xl) == (Smbl y yl)  = (x == y) && (xl==yl)
_ == _                  = False
Run Code Online (Sandbox Code Playgroud)

我得到一个 Ambiguous occurrence ==编译错误.它不能告诉之间的区别Main.==Prelude.==.如果我手动更换所有==Main.==Prelude.==然后它编译罚款.

我不明白为什么编译器在这里遇到这么多困难.xy明确定义为 …

haskell instance ambiguous

7
推荐指数
1
解决办法
1599
查看次数

标签 统计

ambiguous ×1

haskell ×1

instance ×1