我试图将一个简单的(但相当大的)树木结构用于使用Haskell的双向档案。 结构就是这样:
-- For simplicity assume each Node has only 4 childs data Tree = Node [Tree] | Leaf [Int]And here is how I need the data look on disk:
- Each node starts with four 32-bit offsets to it s children, then follow the childs.
- I don t care much about the leafs, let s say it s just n consecutive 32-bit numbers.
- For practival purposes I would need some node labels or some other additional data but right now I don t care about that much neither.
对我来说,Haskellers在撰写双亲档案时首先选择的是数据。 原文。 图书馆。 但就这一点而言,我在第1号子弹中存在问题。 尤其是,当我即将写一个名字到档案中时,要把孩子写上字,我需要知道我目前被抵消的情况以及每个孩子的规模。
这不是数据。 原文。 简言之,我认为这必须完美地适用于摩纳哥变革者。 但是,尽管它使冷却和功能健全,但迄今为止,我没有成功采用这种办法。
我询问了我认为有助于我解决问题的另外两个问题:here和here。 我必须说,每次我收到非常出色的答复,帮助我进一步取得进展,但不幸的是,我仍然无法解决整个问题。
Here是我迄今所去的东西,它仍然泄露了太多的实际记忆。
我希望能找到使用这种功能方法的解决办法,但也会感谢任何其他解决办法。