En este artículo vamos a explicar qué es una función recursiva y cómo funciona utilizando el lenguaje de programación JavaScript. Una función recursiva es una función que se llama a sí misma en un bucle infinito hasta que se cumple una condición y entonces devuelve un valor.
Para mostrar su funcionamiento vamos a poner como ejemplo el cálculo de un número factorial. Recordemos que el factorial de un número es una operación matemática que se define como el producto de todos los números enteros positivos desde 1 hasta el número en cuestión. Cabe destacar que el factorial de 0 se define como 1, ya que cualquier número elevado a la potencia 0 es igual a 1. De este modo tenemos que el factorial de 5 sería:
5! = 5 x 4 x 3 x 2 x 1 = 120
El código siguiente es un ejemplo de función recursiva en JavaScript que calcula el factorial de un número.
function factorial(n) {
if (n === 0 || n === 1) {
return 1;
} else {
return n * factorial(n - 1);
}
}
console.log(factorial(5));
// resultado: 120
Nuestra función factorial() es recursiva porque se llama a sí misma dentro del código:
- Primero, la función comprueba si el valor de (n) es igual a 0 o 1.
- Si es así, devuelve 1, lo que indica el final de la recursión.
- Si (n) no es 0 ni 1, entonces la función devuelve (n) * factorial(n – 1).
- Esta expresión incluye una llamada a sí misma factorial() pero pasando como argumento el valor (n – 1).
- Esto continúa hasta que (n) llega a 1 y se devuelve el valor final (return 1).
Entonces se vuelve hacia atras en todas las llamadas con el resultado anterior de modo que el resultado visualmente sería: 1 * 2 * 3 * 4 * 5 = 120.
Las funciones recursivas son muy útiles cuando no sabemos exactamente la cantidad de veces que tenemos que llamar a una función, por ejemplo al leer un árbol de directorios.
No sabemos la cantidad de archivos, carpetas y subcarpetas que nos vamos a encontrar y según sea un archivo o un directorio el fichero actual, debemos profundizar más o leer todos los archivos.
Después de este pequeño artículo explicando el funcionamiento recursivo puedes encontrar otros artículos interesantes donde explico cómo leer archivos de un directorio con php. O más interesante puede ser el artículo donde explico cómo leer árbol de directorios recursivo con PHP.
¡ Espero que este artículo sea de vuestro interés !