【发布时间】:2011-10-31 17:22:18
【问题描述】:
我目前正在使用从二进制文件构建的 Haskell 中的一些大型 Trie 结构。这个过程需要一些时间,我很好奇是否有一种通用的方法来对递归数据结构进行快速(反)序列化。对于大文件和大 Tries,使用 Show 和 Read 类比从头开始构建尝试慢得多。也许我做错了。
Trie 的形状如下:
type Trie e a = T e [Trie e a]
有什么好的方法可以序列化这样的递归结构?另外,一般来说有什么好的方法来解决这个问题?
【问题讨论】:
-
我对那些库很熟悉,是的。我以前在其他事情上使用过二进制。虽然它不能解决一般情况下的问题,但这是我问题的症结所在。
-
Show/Readis 很慢,应该会这样。为什么你说binary在一般情况下不能解决问题?你的意思是你实际上必须编写实例而不是使用deriving? -
@FUZxxl 似乎在包文档中用于派生
Binary的脚本的链接断开了。 darcs.haskell.org/binary/tools/derive/BinaryDerive.hs :( -
@Alexy 是的。在我手动实现之前,我很好奇是否有更自动的“派生”类型方法。
标签: haskell