Hola y bienvenidos.
Vamos a ver a continuación el tema de funciones recursivas.
Están listas?
Vamos.
Bien.
Básicamente el tema de funciones recursivas es muy sencillo.
Sin embargo, también puede ser algo confuso al principio.
Por ello, vamos a ver los temas más importantes relacionados al tema de funciones recursivas.
Básicamente, una función recursiva, como vamos a ver, es una función que se manda llamar a sí misma.
Así que dentro de la función que estamos definiendo vamos a volver a mandar, a llamar la función que
hemos definido anteriormente.
Así que, básicamente el concepto fundamental de una función recursiva es que es una función que se
manda llamar a sí misma.
Sin embargo, existen algunas reglas para poder definir correctamente una función recursiva y evitar
caer en llamadas infinitas, ya que también podríamos crear funciones recursivas que se mandan a llamar
de manera infinita.
Y esto obviamente crearía un problema en la ejecución del programa, ya que la idea de las llamadas
recursivas es que en algún momento se detenga esta ejecución.
Vamos a ver entonces estas reglas para definir correctamente una función recursiva.
Así que vamos a ver reglas para definir funciones recursivas.
La primera regla es que una función recursiva se debe de mandar a llamar a sí misma.
Esto ya lo hemos comentado, pero es la primera regla que debe de cumplir una función recursiva.
Así que dentro de nuestro código de la función vamos a volver a mandar, a llamar nuestra función pasando
cierta información.
Pero esta información normalmente va a estar modificada.
No va a ser exactamente el mismo argumento que vamos a pasar cada vez que mandamos a llamar nuestra
función recursiva.
Sin embargo, la primera característica de una función recursiva es que se mande a llamar a sí misma
dentro del código de la función.
Y como segunda regla es que siempre que mandemos a llamar la función recursiva de alguna manera y de
manera eventual, debe ir avanzando hacia un caso base.
Y una vez que llegamos al caso base, se detienen las llamadas recursivas.
De esta manera vamos a evitar caer en ciclos infinitos.
Así que, por ejemplo, si tenemos una función que recibe un valor, por ejemplo, en este caso el valor
en cualquier variable de tipo entero, entonces de alguna forma, dentro de nuestro código de esta función
vamos a revisar un caso base.
Por ejemplo, si el valor de N es igual a uno, entonces quiere decir que ya hemos llegado al final
de la ejecución de nuestra función.
Por lo tanto, realiza una tarea, por ejemplo, en este caso regresar algún valor o mandar a imprimir
cierta información.
Pero ya no vuelve a mandar a llamar a la misma función.
Así que si coincide que es el caso base, se detiene la ejecución de las llamadas recursivas.
Pero por otro lado, si no es el caso base, entonces volvemos a mandar a llamar la función de manera
recursiva.
Pero aquí lo común es que el argumento va a modificar su valor para que de manera eventual.
Entonces, por ejemplo, si es un valor positivo, vayamos reduciéndolo hasta que lleguemos al valor
de uno.
Por lo tanto, esta es la siguiente condición.
Cada vez que mandemos a llamar, nuestra función recursiva debe estar acercándose al caso base y entonces
mandamos a llamar de nueva cuenta la función y se vuelve a revisar si es el caso base.
Entonces se detiene las llamadas recursivas y si no, entonces se vuelve a llamar de manera recursiva,
pero reduciendo en uno o modificando de alguna manera el argumento para que nos acerquemos al caso base.
Así que con cada llamada recursiva nos acercamos al caso base.
Esas son las reglas que debemos de cumplir cuando trabajamos con funciones recursivas.
Vamos a poner en práctica un ejemplo para que todo esto quede más claro.
Así que nos vemos en el siguiente vídeo.
Saludos.