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