Blog
Las funciones son bloques de código que realizan una tarea en específico. A estas funciones se les asigna un nombre para poder invocarlas durante la ejecución del programa, pero ¿que pasa si la función se llama a si misma? Pues lo que tenemos es una función recursiva.
Estas se utilizan generalmente para dividir una tarea en sub-tareas más simples a fin de abordar el problema de una forma más sencilla.
Es importante establecer el momento en que se dejará de llamarse así misma, de lo contrario se obtendrá una función recursiva infinita.
Ejemplo de función recursiva que hace el factorial de un numero en Python:
def fun_fact(x): if (x==1): return 1 else: x=(x*fun_fact(x-1)) return x num=10 print("El factorial de ", num, "es ",fun_fact(num))
En este ejemplo, la funcion recursiva() es una función que hemos definido para llamarse a sí misma (“recursiva”). Usamos la variable k como dato, que disminuye (-10) cada vez que recurrimos. La recursividad termina cuando la condición no es mayor que 0 (es decir, cuando es 0).
Para un nuevo desarrollador, puede tomar algún tiempo averiguar cómo funciona exactamente, la mejor manera de averiguarlo es probándolo y modificándolo.
def recursiva(k): if(k>0): resultado = k + recursiva(k-10) print( resultado) else: resultado = 0 return resultado print("\n\nEjemplo de recursividad") recursiva(60)
✅Ventajas de la recursividad
- Las funciones recursivas hacen que el código se vea limpio y elegante.
- Una tarea compleja se puede dividir en subproblemas más simples mediante la recursividad.
- La generación de secuencias es más fácil con la recursividad que con algunas iteraciones anidadas.
❌Desventajas de la recursividad
- A veces, la lógica detrás de la recursividad es difícil de seguir.
- Las llamadas recursivas son caras (ineficaces) ya que ocupan mucha memoria y tiempo.
- Las funciones recursivas son difíciles de depurar.