【发布时间】:2012-01-24 12:02:22
【问题描述】:
我正在使用 Data.Graph Graph 在 Haskell 中对模拟进行建模。模拟仅限于我的图形模型的 2D 网格。下面网格上每个点的节点都将包含一个 Maybe Molecule 类型,因此可能存在一个分子或什么都没有。
1 - 2 - 3
| | |
4 - 5 - 6
| | |
7 - 8 - 9
我已经设置了这个表示,但是当涉及到更新分子的位置时,我觉得我在这个问题上走了很长一段路。到目前为止,我所做的是将所有节点剥离成一个节点列表。我编写了一个函数来交换此节点列表中的两项。但是现在,当我将所有内容重新压缩在一起时,我遇到了问题,因为要生成一个新图形,我需要一个顶点列表,我可以从 vertices Graph 函数中轻松获得这些顶点列表。但我还需要用边缘接触的顶点列表来压缩它。不幸的是,Data.Graph 的 edges Graph 函数返回一个 Edge 类型的元组列表,据我所知,这对于生成图形并没有立即帮助,尽管我可以编写一个函数来派生具有顶点的边的列表顶点。这样做似乎对我来说已经足够了,我想知道我是否错过了这一点,是否有一个 Graph 函数,它只获取一个图并返回一个带有更新节点的图?
【问题讨论】:
标签: haskell graph simulation