【发布时间】:2011-03-22 18:08:19
【问题描述】:
我正在使用 aho-corasick 算法来尝试让 F# 变得更好一些,但我遇到了 Trie 实现的问题,它们都是可变的或者不能进行尾调用优化。
我所看到的基本问题是,不可变数据结构必须“自下而上”构建,因为您无法更改它们指向的内容,因此您的选择是使它们可变,或者找出节点为你继续(即在构造中递归)。
有什么方法可以在构造上通过尾调用优化来制作不可变的 trie 数据结构?(并且不会因复制而降低效率。)
【问题讨论】:
标签: f# immutability trie tail-call