私はaho-corasickアルゴリズムを試して、F#を少し改善しようとしていますが、Trieの実装で問題が発生しました。これらはすべて変更可能であるか、末尾呼び出しを最適化できません。
私が見ることができる基本的な問題は、不変のデータ構造は、それらが指すものを変更できないため、「ボトムアップ」で構築する必要があるということです。したがって、オプションは、それらを可変にするか、進行中にノードを見つけるかのいずれかです。 (つまり、建設中の再帰)。
構造の末尾呼び出しを最適化して不変のトライデータ構造を作成する方法はありますか?(コピーによって効率が低下しないようにします)。