Soy consciente de que doblar a la izquierda produce árboles que se inclinan a la izquierda y que doblar a la derecha produce árboles que se inclinan a la derecha, pero cuando alcanzo un pliegue, a veces me encuentro atascado en pensamientos que me provocan dolor de cabeza tratando de determinar qué tipo de pliegue. es apropiado. Por lo general, termino resolviendo todo el problema y avanzando paso a paso en la implementación de la función de plegado según se aplica a mi problema.
Entonces, lo que quiero saber es:
- ¿Cuáles son algunas reglas generales para determinar si doblar a la izquierda o a la derecha?
- ¿Cómo puedo decidir rápidamente qué tipo de pliegue usar dado el problema al que me enfrento?
Hay un ejemplo en Scala by Example (PDF) de usar un pliegue para escribir una función llamada aplanar que concatena una lista de listas de elementos en una sola lista. En ese caso, un pliegue a la derecha es la elección correcta (dada la forma en que se concatenan las listas), pero tuve que pensarlo un poco para llegar a esa conclusión.
Dado que el plegado es una acción tan común en la programación (funcional), me gustaría poder tomar este tipo de decisiones de forma rápida y segura. Entonces ... ¿algún consejo?