Programación funcional en acción

Conceptos de paradigmas de programación

Eleanor Thomas

Senior Data Analytics Engineer

Programación funcional en acción

  • Tres ejemplos de funciones puras
  • Diferencia clave entre una función pura y una función de Python general: sin efectos secundarios
  • Las funciones puras pueden llamarse entre sí y seguir siendo puras

Pizarra

Conceptos de paradigmas de programación

Ejemplo 1: escribir una función pura

def square_list(input_list):
    new_list = []

for item in input_list:
new_item = item ** 2
new_list.append(new_item)
return new_list
  • Primero crea una lista vacía
  • Recorre cada elemento de la lista de entrada
    • Eleva al cuadrado
    • Añádelo a la nueva lista
  • Devuelve la nueva lista
Conceptos de paradigmas de programación

Ejemplo 2: corrigiendo una función “impura”

sample_mean = 10
scale_factor = 2

def scale_list(input_list):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • Depende de variables fuera del cuerpo de la función
  • No es una función pura
Conceptos de paradigmas de programación

Ejemplo 2: función “impura” corregida

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = (item - sample_mean) / scale_factor
        new_list.append(new_item)
    return new_list
  • Las variables sample_mean y scale_factor ahora son parámetros de entrada
  • La función ahora es “pura”
Conceptos de paradigmas de programación

Ejemplo 3: combinando funciones puras

def scale_value(value, sample_mean, scale_factor):
    scaled_value = (value - sample_mean) / scale_factor
    return scaled_value

def scale_list(input_list, sample_mean, scale_factor):
    new_list = []
    for item in input_list:
        new_item = scale_value(item, sample_mean, scale_factor)
        new_list.append(new_item)
    return new_list
Conceptos de paradigmas de programación

¡Vamos a practicar!

Conceptos de paradigmas de programación

Preparing Video For Download...