【发布时间】:2021-07-22 21:14:36
【问题描述】:
我正在学习 Haskell 并编写一个小型决策图库作为开始项目。我已将数据类型声明为
data DD a = DDNode { var :: Int, vals :: [DD a]} | DDLeaf { val :: a} deriving (Show, Eq)
为了测试 2 个 DD 之间的相等性,我正在为 DD 创建一个 Eq 实例。它基本上与在树结构的情况下测试节点和叶相等性相同。
instance (Eq a) => DD a where
(DDNode i vs) == (DDNode i' vs') = i == i' && vs == vs'
(DDLeaf v) == (DDLeaf v') = v == v'
_ == _ = False
当我在 GHCi 中使用上述代码加载文件时,出现以下错误,
Prelude> :load decisionDiagrams.hs
[1 of 1] Compiling DecisionDiagram ( decisionDiagrams.hs, interpreted )
decisionDiagrams.hs:9:19: error:
‘==’ is not a (visible) method of class ‘DD’
Failed, modules loaded: none.
我做错了什么?
【问题讨论】: