Angenommen, ich möchte einen einigermaßen effizienten Schlüsselworterkennungsalgorithmus implementieren, der zuerst eine Liste mit Schlüsselwörtern erhält und dann antworten muss, ob ein anderes gegebenes Wort in der Liste enthalten ist.Wie kann ein einfacher Baumalgorithmus in einer funktionalen Sprache codiert werden?
In einer imperativen Sprache würde ich die Schlüsselwörter in einem Baum (ein Knoten pro Zeichen) speichern. Wenn ich dann ein zu testendes Wort erhalte, scanne ich meinen Baum, um zu testen, ob das Wort ein Schlüsselwort ist.
Ich würde gerne verstehen, wie ein solcher Algorithmus in einer funktionalen Sprache codiert wäre. Wie erhält man die Vorteile der "zustandslosen" Programmierung, während die Effizienz von "imperativen" Algorithmen erhalten bleibt? Ist es nicht notwendig, den Baum irgendwo zwischen den Suchvorgängen zu speichern, wenn Sie ihn nicht jedes Mal neu erstellen wollen?