¿Qué es la recursividad y qué beneficios nos brinda a las personas?
Por definición, la recurrencia, recursión o recursividad es un proceso que se referencía a sí mismo, o sea: aplicar un proceso a una cosa y después aplicar ese mismo proceso al resultado.
El ejemplo más simple que se me ocurre es abrir una muñeca matrioska; es una muñeca, la cual tiene dentro una muñeca, que contiene otra muñeca... El proceso es simple y repetitivo, abrir la primer muñeca y a la muñeca nueva (el resultado) aplicar el mismo proceso y continuar así hasta haber abierto todas las muñecas. Este concepto es muy utilizado en la programación aunque no muchos programadores lo dominan.
Yo no profundizaré en los detalles técnicos de esta forma de resolver problemas porque ya existen muuuchos ejemplos y mucha información al respecto; yo te recomiendo leer este post de * Include-Poetry * donde te explica de manera muy digerible el tema del que estoy hablando.
Ahora bien, mi propósito no es meterte en la cabeza toda una tesis de ingeniería en sistemas sino simplemente darte mi opinión de porqué te conviene aprender esta forma de resolver problemas y cómo te ayudaría en tu vida cotidiana, o mejor aún, en tus códigos si es que te dedicas a programar.
Te enseña a simplificar tus ideas
Como la idea es aplicar el mismo proceso en cadena a muchas cosas, esto se vuelve como una bola de nieve cuando la tiras por una montaña; cada vuelta que da la bola, se va haciendo más y más grande. Es por esto que tienes que simplificar los pasos de tu proceso para que la bola de nieve no crezca tanto que pueda destruir un pueblo al pie de la montaña.
Aprendes a pensar en diferentes niveles y caminos... ¡Al mismo tiempo!
Piensa en tu centro comercial favorito y dime ¿cuántos caminos existen para ir ahí desde tu casa? Toma en cuenta por dar vuelta en una calle en vez de otra ya estamos hablando de un camino completamente diferente. ¿Vas en auto, en camión o a pie? Si vas en camión, te tienes que atener a la ruta que tenga; en carro, al tráfico y a las calles, pero si te vas caminando puedes cruzar prácticamente por cualquier lugar pero puede que tardes más tiempo.
Todas estas preguntas las hace Google Maps cada que le preguntas una ruta. La computadora aplica un algoritmo base y así encontrar los mejores caminos para que tú vayas al centro comercial. Tiene que ser lo suficientemente complejo para resolver cualquier opción que se le presente, pero al mismo tiempo lo suficientemente simple para evitar el problema de la bola de nieve.
Visualizas tus metas
Este algoritmo o proceso que diseñaste se seguirá ejecutando sin parar porque esa es su naturaleza: llamarse a sí mismo, es por eso que tú tienes que tener bien definido qué es lo que quieres obtener y explicarle a tu proceso cuándo detenerse. ¿Ya abriste todas las muñecas matroskas? ¿Encontraste el camino más rápido para ir al cine? ¿Encontraste la salida del laberinto? Pues aprende a reconocerlo y explícaselo a tu programa.