Je suis conscient que le pli à gauche produit des arbres penchés à gauche et le pli à droite produit des arbres penchés à droite, mais lorsque j'atteins un pli, je me retrouve parfois enlisé dans une pensée qui me donne des maux de tête en essayant de déterminer quel type de pli est approprié. Je finis généralement par dénouer tout le problème et par la mise en œuvre de la fonction de pliage telle qu'elle s'applique à mon problème.
Donc ce que je veux savoir, c'est:
- Quelles sont quelques règles de base pour déterminer s'il faut se plier à gauche ou à droite?
- Comment puis-je rapidement décider quel type de pli utiliser compte tenu du problème auquel je suis confronté?
Il existe un exemple dans Scala par exemple (PDF) d'utilisation d'un repli pour écrire une fonction appelée flatten qui concatène une liste de listes d'éléments en une seule liste. Dans ce cas, un pli droit est le bon choix (étant donné la façon dont les listes sont concaténées), mais j'ai dû y réfléchir un peu pour arriver à cette conclusion.
Étant donné que le pliage est une action si courante dans la programmation (fonctionnelle), j'aimerais pouvoir prendre ce genre de décisions rapidement et en toute confiance. Alors ... des conseils?