我希望以以下方式在Haskell中表示图形:
对于每个节点,我想存储它的值和相邻节点的列表。我遇到困难的问题是,我希望将相邻节点存储为对其他节点的引用。
例如,我希望将节点ny存储为(“NY”(l p)),其中l和p是相邻节点,而不是(“NY”(“London”“Paris”))。
我尝试了类似这样的东西:
data Node a = Node { value :: a
, neighbors :: [Node a]
}deriving (Show)
let n1 = Node {value=1, neighbors=[n2]}
let n2 = Node {value=1, neighbors=[n1 n3]}
let n3 = Node {value=1, neighbors=[n2]}
但是我在let语句中遇到了一个错误。我做错了什么?
let
,但在实际的Haskell程序中,在顶层不需要它。 - Andrew Jaffe