Recursión en programación funcional

Conceptos de paradigmas de programación

Eleanor Thomas

Senior Data Analytics Engineer

¿Qué es la recursión?

  • Función recursiva: una función que se llama a sí misma
  • Debe tener una condición de parada (caso base)
  • También incluye la llamada recursiva con entrada modificada
0 | def my_recursive_function(input_value):
1 |     # base case
2 |     if base_case_condition:
3 |        return base_case_output_value
4 |     # recursive call
5 |     else:
6 |        return my_recursive_function(modified_input_value) + some_modification
Conceptos de paradigmas de programación

¿Por qué usar recursión?

  • Algunos problemas son más sencillos si se definen recursivamente
  • Números de Fibonacci:
    • 0, 1, ...
    • 0, 1, 1, ...
    • 0, 1, 1, 2, ...
    • 0, 1, 1, 2, 3, ...
Conceptos de paradigmas de programación

Más ejemplos de recursión

Un sistema de archivos

  • Búsqueda en un sistema de archivos
Conceptos de paradigmas de programación

Más ejemplos de recursión

Un sistema de archivos; un método de ordenación

  • Búsqueda en un sistema de archivos
  • Algoritmos de ordenación como Merge Sort
Conceptos de paradigmas de programación

Más ejemplos de recursión

Un sistema de archivos; un método de ordenación; una estructura de datos

  • Búsqueda en un sistema de archivos
  • Algoritmos de ordenación como Merge Sort
  • Varias estructuras de datos se definen recursivamente
Conceptos de paradigmas de programación

Recursión vs. iteración

  • Toda función recursiva puede escribirse de forma iterativa
  • Una función iterativa usa un bucle en lugar de una llamada recursiva
def iterative_factorial(n):
    result = 1
    for i in range(1, n + 1):
        result = result * i
    return result
Conceptos de paradigmas de programación

¡Vamos a practicar!

Conceptos de paradigmas de programación

Preparing Video For Download...