Clase#.
10
Programación
Funcional
Cami Gomez - Python Developer
Hola soy Cami
Soy desarrolladora Backend en Huge y
profesora de programación para niños.
Amo el mundo de la tecnología y compartir
conocimiento, es mi pequeña forma de
contribuir a cambiar el mundo.
También pueden hablar conmigo sobre
gatos, viajes, juegos de mesa y buceo.
Tabla de contenido
Clase #10
Programación Python como
/01 Funcional /02
lenguaje funcional.
Lambdas, Maps
/03 and Filters.
Programación
/01
Funcional
La programación funcional es un paradigma de programación
declarativo donde el foco está en las funciones matemáticas
puras y el uso de expresiones en lugar de sentencias que
alteren el estado del programa.
Las funciones son tratadas como ciudadanos de primera
clase, lo que significa que pueden ser asignadas a variables,
pasadas como argumentos y retornadas como resultado.
Paradigmas de programación
Un paradigma de programación es un enfoque o conjunto de
principios que guían la forma en que se estructura y se
escribe el código en un lenguaje de programación.
Define la forma en que se modelan y se resuelven los
problemas utilizando dicho lenguaje.
Programación Imperativa vs Declarativa.
Imperativa. Declarativa.
Describe qué pasos hay que dar Se enfoca en describir qué/cuál
para obtener la solución de un es la solución sin entrar en los
problema. detalles de su control de flujo.
Características de Inmutabilidad: No se modifican variables ni
la Programación se cambia el estado. En su lugar, se crean
Funcional nuevos valores.
Funciones puras: Las funciones no tienen
efectos secundarios. El mismo conjunto de
entradas siempre produce la misma salida.
Declarativo: El código describe el qué hacer
en lugar del cómo hacerlo.
Control implícito: Se usan expresiones como
map(), filter(), y reduce() para aplicar
operaciones sin necesidad de bucles
explícitos.
Ventajas:
Ventajas y ● Código más predecible y fácil de
desventajas de razonar.
la Programación ● Facilidad de testeo.
Funcional: ● Menos errores relacionados con el
estado.
● Modularidad y reutilización.
Desventajas:
● Curva de aprendizaje.
● Sobrecarga de memoria.
● Rendimiento.
Python como
/02
lenguaje funcional.
Python es un lenguaje de programación que admite
múltiples paradigmas, lo que lo hace muy flexible y
versátil.
Python tiene características de programación
funcional ya que permite el uso de funciones de
primera clase, funciones de orden superior,
expresiones lambda y operaciones de lista (como
map, filter y reduce) para realizar operaciones
funcionales.
Función Pura
Funciones puras.
1. Devuelven el mismo resultado al ser
llamadas con los mismos argumentos de
entrada.
Función Impura
2. El resultado solo depende de la entrada:
no tienen memoria.
3. No tiene efectos colaterales (side effects).
Funciones como ciudadanos
de primer orden.
Se refieren a elementos en un lenguaje de
programación que pueden ser tratados de
manera completa y sin restricciones.
Estos elementos pueden ser asignados a
variables, almacenados en estructuras de datos,
pasados como argumentos a funciones y
devueltos como resultados de funciones.
Funciones de orden
superior.
Una función se denomina Función de orden
superior si esta contiene otras funciones como
parámetros de entrada o si devuelve una función
como salida, es decir, las funciones que operan
con otra función se conocen como Funciones de
orden superior en Python.
Funciones recursivas.
Una función recursiva es una función que se define en
términos de sí misma a través de una expresión
autorreferencial. Eso significa que la función se llama a
sí misma y repite el comportamiento hasta que se
cumple alguna condición, y luego devolverá un
resultado.
Currying
El currying es una técnica de programación funcional
en la que una función con múltiples argumentos se
transforma en una secuencia de funciones, cada una
con un solo argumento.
En otras palabras, una función que toma varios
parámetros se convierte en una serie de funciones
anidadas, donde cada función toma un solo
argumento y devuelve una nueva función.
Lambdas, Maps and
/03
Filters.
Lambdas.
Las funciones Lambda son funciones anónimas que
solo pueden contener una expresión.
Componente Significado
lambda Palabra clave para definir una expresión lambda.
<parameter_list> Una lista de nombres de parámetros opcionales.
Puntuación para separar los parámetros de la
:
expresión.
Una expresión que normalmente incluye los
<expression>
parámetros.
Función Map()
La función map() devuelve un objeto de Map (que es
un iterador) de los resultados después de aplicar la
función dada a cada elemento de un iterable dado
(lista, tupla, etc.).
Función Filter()
El método filter() filtra la secuencia dada con la ayuda de
una función que prueba si cada elemento de la secuencia
es verdadero o no.
Done