如何在 Haskell 中构建图表:
type Node = Int
type Arc = (Node, Node)
和功能:
class Graph g where
build :: [Node] -> [Arc] -> g
目前你只有一个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
这可能是也可能不是一个可接受的实例,具体取决于您想要做什么。有关您的实际目标的更多信息将帮助我提出更好的表示。