Dire que je voulais écrire un algorithme travaillant sur une structure de données arborescente immuable qui a une liste de feuilles comme son entrée. Il a besoin de retourner un nouvel arbre avec les changements faits au vieil arbre allant vers le haut à partir de ces feuilles.Algorithme de l'arbre bottom up fonctionnel pur
Mon problème est qu'il semble y avoir aucun moyen de faire cela purement fonctionnel sans reconstruire l'arbre entier vérifiant aux feuilles si elles sont dans la liste, parce que vous devez toujours retourner un nouvel arbre complet à la suite d'une opération et vous ne pouvez pas muter l'arbre existant.
Est-ce un problème fondamental dans la programmation fonctionnelle qui peut seulement être évité en utilisant un algorithme mieux adapté ou est-ce que je manque quelque chose?
Éditer: Je ne veux pas seulement éviter de recréer l'arbre entier mais aussi l'algorithme fonctionnel devrait avoir la même complexité de temps que la variante de mutation.
Cela semble être une solution. Merci beaucoup :) –
Vous êtes les bienvenus :) –