我想从Haskell中的硬盘读取大图结构。图结构是这样的:Haskell惰性打开和关闭文件
的每个节点都得到了一个定义 - 文件描述是什么孩子,他们如何连接(这些图表进行序列化使用Data.Serialize
每个节点可以有孩子所以,如果。我有文件A.node
我可以有目录A
含A
节点的孩子(在<X>.node
文件和目录的形式)。
我希望能够遍历使用Haskell和负荷此图的内存和反序列化只需要如果我例如以的方式遍历图形(其中B
是A
等的子),则Haskell应读取文件A.node
,A/B.node
和A/B/C.node
。下次我遍历图时,文件应该再次被读取,因为我们已经做了NOT。
我该如何做到最好?
您是否想要正在阅读的文件的内容,或者只在需要时才打开文件? – bennofs
如果可能,我想打开并关闭文件。 –
你想做什么?您是否想要缓存文件内容,即在文件已被读取时不要再次读取文件?因为这种情况下,如果你想做的事听起来对我来说是一个坏主意。您可能想要使用[pipes](http://hackage.haskell.org/package/pipes)或[conduit](http://hackage.haskell.org/package/conduit) – bennofs