如何在Haskell中构建图形?

Edd*_*Edd 1 haskell graph

如何在Haskell中构建一个图形:

type Node = Int
type Arc = (Node, Node) 
Run Code Online (Sandbox Code Playgroud)

和功能:

class Graph g where
         build :: [Node] -> [Arc] -> g
Run Code Online (Sandbox Code Playgroud)

Dan*_*zer 9

目前你只是一个类型类,有点像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
Run Code Online (Sandbox Code Playgroud)

根据您的要求,这可能是也可能不是可接受的实例.有关您的实际目标的更多信息将帮助我建议更好的代表性.