Je suis conscient que le pli gauche produit gauchisants des arbres et des plier à droite produit droite arbres, mais quand j'arrive pour une fois, je me trouve parfois s'enliser dans des maux de tête induisant la pensée d'essayer de déterminer le type de pli est approprié. Je finissent généralement déroulement de l'ensemble du problème et de marcher à travers la mise en œuvre de la fonction fold car il s'applique à mon problème.
Donc ce que je veux savoir, c'est:
- Quelles sont les règles du pouce pour déterminer si à la fois de gauche ou de plier la droite?
- Comment puis-je déterminer rapidement le type de pli à utiliser compte tenu du problème que je me pose?
Il y a un exemple dans la Scala par Exemple (PDF) de l'utilisation d'un pli à l'écriture d'une fonction appelée aplatir qui concatène une liste d'élément listes en une seule liste. Dans ce cas, un droit de pli est le bon choix (étant donné la manière dont les listes sont concaténés), mais j'ai dû réfléchir un peu pour arriver à cette conclusion.
Depuis pliage est une action commune dans (fonctionnelle) de la programmation, je voudrais être en mesure de prendre ce genre de décisions rapidement et en toute confiance. Alors... des conseils?