Как я могу построить график в Haskell, имеющий:Как я могу построить график в Haskell?
type Node = Int
type Arc = (Node, Node)
и функции:
class Graph g where
build :: [Node] -> [Arc] -> g
Как я могу построить график в Haskell, имеющий:Как я могу построить график в Haskell?
type Node = Int
type Arc = (Node, Node)
и функции:
class Graph g where
build :: [Node] -> [Arc] -> g
В настоящее время вы просто иметь typeclass, который Сорта, как интерфейс ООП. Подобно интерфейсу, вы не можете фактически «построить» класс. Вам нужно выбрать конкретную реализацию (используя ключевое слово 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
Это может или не может быть приемлемым экземпляром в зависимости от того, что вы хотите сделать. Больше информации о ваших реальных целях поможет мне предложить лучшее представление.
'Graph' - это не тип, это класс типа. Сначала вам нужно определить подходящий тип. –