1

如何在 Haskell 中构建图表:

type Node = Int
type Arc = (Node, Node) 

和功能:

class Graph g where
         build :: [Node] -> [Arc] -> g
4

1 回答 1

9

目前你只有一个typeclass,它有点像 OOP 接口。就像接口一样,您实际上不能“构造”一个​​类。您需要选择一个具体的实现(使用关键字data),然后build在其上实现该功能。这就是您将传递给需要的函数的内容Graph

举个简单的例子:

--The concrete data type
data NaiveGraph = NG [Node] [Arc]

--Now we make it an instance of Graph
instance Graph NaiveGraph where
   build = NG

这可能是也可能不是一个可接受的实例,具体取决于您想要做什么。有关您的实际目标的更多信息将帮助我提出更好的表示。

于 2013-04-06T18:05:35.607 回答