我目前正在使用Haskell中的一些大型Trie结构,我是从二进制文件构建的。这个过程需要一些时间,我很好奇是否有一种通用的方法来快速(de)递归数据结构的序列化。对于大型文件和大型Tries,使用Show和Read类比从头开始构建尝试要慢得多。也许我做错了。
Trie的形状如下:
type Trie e a = T e [Trie e a]
序列化这样的递归结构有哪些好方法?另外,一般来说,这个问题的一些好方法是什么?
答案 0 :(得分:1)
通用解决方案可能是实现Foldable
和Unfoldable
(希望后一类存在)。
答案 1 :(得分:1)
如文档的评论中所述,用于在文档中派生binary
实例的链接已被破坏。但该文件仅存在于稍微不同的新网址:http://darcs.haskell.org/packages/binary/tools/derive/BinaryDerive.hs
我还没有使用它,但我认为这可以做你想要的。