我正在学习教程并找到这段代码:
data A = B | C deriving(Eq)
class K a where
f :: a -> Bool
instance K A where
f x = x == C
f _ = False
call = f B
为什么我需要 f _ = False
?没有它我得到相同的结果。
最佳答案
答案很简单:您不需要此处需要f _ = False
。事实上,如果您使用 -Wall
进行编译,那么编译器会警告您该子句是多余的,因为 f x = ...
子句已经捕获了所有内容。
如果教程告诉您要有那个额外的子句,那么,那是错误的。
关于class - 类实例声明的解释,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/74799180/