我想用 Clean(一种与 Haskell 非常相似的语言)解决这个问题:
有一个class Node t
, 有两个实例:instance Node EdgeList
和instance Node Adjacency
。我想创建一个图表,它是一个数组或节点列表。
的定义Graph
是:
class Graph t1 t2 | Node t2 where
resetGraph :: (t1 t2) -> (t1 t2)
graphSize :: (t1 t2) -> Int
...
我想写实例。一个带数组,一个带列表。首先,我尝试使用列表,但出现错误:t2 not defined
instance Graph [t1] t2 | t2 t1 where
(resetGraph) :: [t1] -> [t1]
(resetGraph) x = []
...
例如,它将像这样调用:resetGraph listAdj
其中 listAdj 是Adjacency
节点列表
如果我只是写:instance Graph [tt] tt
然后我得到这个错误:Error: this type variable occurs more than once in an instance type
。