Supposons que je souhaite implémenter un «algorithme de reconnaissance de mots-clés» raisonnablement efficace, auquel on donne d'abord une liste de mots-clés, et qui doit ensuite répondre si un autre mot figurait dans la liste.Comment un algorithme d'arborescence simple peut-il être codé dans un langage fonctionnel?
Dans un langage impératif, je stockerais les mots-clés dans un arbre (un nœud par caractère). Puis, en recevant un mot à tester, je voudrais scanner mon arbre pour tester si le mot est un mot-clé.
Je voudrais comprendre comment un tel algorithme serait codé dans un langage fonctionnel. Comment obtenir les avantages de la programmation «sans état» tout en conservant l'efficacité des algorithmes «impératifs»? N'est-il pas nécessaire de stocker l'arbre quelque part entre les recherches si vous ne voulez pas le reconstruire à chaque fois?