查看Hackage和GitHub 上的MemoTrie包.有关简单而美观的基础理论的背景知识,请参阅Haskell wiki 页面上的memoization,包括Ralf Hinze的两篇论文,一篇由我发表的文章和一些博客文章.
另一个trie/memoization包是functor-combo,也是Hackage和GitHub上的.此软件包包含使用高阶类型和其他博客文章在Elegant memoization中描述的创意实现.
其他一些相关的包:
应要求从评论中移出...
我所知道的唯一非常通用的 trie 实现是packagelist-tries。我总是觉得它有点过度设计,但一个人的“过于复杂”是另一个人的“功能齐全”,所以如果它适合你的目的,那就去吧。此外,该软件包似乎得到了积极维护,这很好。
哦,由于该包没有在我能看到的任何地方明确说明这一点:“Patricia trie”版本是一个将单分支节点序列压缩到存储公共键前缀的单个节点的 trie。因此,对于键“aabb”和“aabc”,您将得到一个带有“aab”的节点,然后是分支“b”和“c”。标准 trie 总是一次分支一个元素。