4
我需要建立一个函数,该函数返回某些节点之间的所有路径之间的所有路径。Haskell中 - 产生节点
connect :: Int -> Int-> [[(Int,Int)]]
Data.Graph图书馆给我有用的功能 'buildG' 它建立图形我。如果我叫
let g = buildG (1,5) [(1,2),(2,3),(3,4),(4,5),(2,5)]
,
我会得到,每一个节点被映射到他的邻居的数组。 一个例子:
g!1 = [2]
g!2 = [3,5]
..
g!5 = []
我尝试使用列表理解来做到这一点,但我不是在Haskell很好,我 我不能得到修复打字错误。
connect x y g
| x == y = []
| otherwise = [(x,z) | z <- (g!x), connect z y g]
我现在不需要担心这个周期。这是我想要得到的:
connect 1 5 g = [[(1,2),(2,3),(3,4),(4,5)],[(1,2),(2,5)]]
非常感谢!我说我没必要担心的周期,但无论如何,感谢;-) – user1460863