【问题标题】:Explanation of class declarations in HaskellHaskell中类声明的解释
【发布时间】:2022-12-15 05:44:40
【问题描述】:

我正在关注教程并找到了这段代码:

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

没有它我得到相同的结果。

也许有人有解释。

谢谢你。

【问题讨论】:

    标签: class haskell declaration


    【解决方案1】:

    答案很简单:在这里需要f _ = False。事实上,如果您使用-Wall 进行编译,那么编译器会警告您该子句是多余的,因为f x = ... 子句已经捕获了所有内容。

    如果教程告诉您要有那个额外的子句,那就错了。

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多