Recursion

--Originally published at Blog de Esteban

Te voy a explicar este tema como me gustaría que a mi me lo hubieran explicado, se me complico un poco entender como funciona, lo pude haber usado así nomas, pero quería entender la lógica de esto y después de un rato lo logré.

Básicamente nos referimos a “recursion” a la acción de usar una función dentro de la función, es decir un ciclo, algo como esto:

y si cuando usas esto por primera vez quizá no vas a entender muy bien lo que pasa y te quedaras así:

Pero no es tan difícil, algo que tienes que tener bien en claro es que tienes que ponerle un fin a este loop, esto lo explicaré con un ejemplo: el famoso factorial

Vemos que el final del loop es n<=0

En es código podemos ver que “n” es el número al que le sacaremos el factorial, por lo que se multiplica por el factorial del numero que lo precede, imaginemos que n=5, lo que hará la función es multiplicarlo por 4!, pero ese $! se multiplicara por 3! y así sucesivamente hasta que n=0 y se regrese el valor de 1, en ese momento se comenzará a multiplicar lo que se venia acumulando, es como bajar y subir una escalera.

El ejemplo anterior quedaría así gráficamente: 5(4(3(2(1))))

A diferencia de un loop, aquí no estamos guardando el valor que se va multiplicando en una variable.

otra representación de lo que pasa en una recursion.

Te dejo un video que me sirvió mucho para comprender y de donde saqué los ejemplos de este post:

links de los gifs usados:

https://tenor.com/search/head-explode-gifs

https://gifimage.net/wp-content/uploads/2017/07/head-explosion-gif-5.gif

http://www.reactiongifs.com/wp-content/uploads/2013/10/mind-blown.gif