Want to create interactive content? It’s easy in Genially!
Presentación interactiva básica
Javier Antonio Monterrubio Mendez
Created on October 14, 2024
Start designing with a free template
Discover more than 1500 professional designs like these:
View
Practical Presentation
View
Smart Presentation
View
Essential Presentation
View
Akihabara Presentation
View
Pastel Color Presentation
View
Modern Presentation
View
Relaxing Presentation
Transcript
PROGRAMACIÓN FUNCIONAL
JAVIER ANTONIO MONTERRUBIO MÉNDEZ PROGRAMACIÓN LÓGICA Y FUNCIONAL
Empezar
Índice
01. CONCEPTOS BÁSICOS DE LA PROGRAMACIÓN FUNCIONAL
02. CARACTERÍSTICAS
Características principales
Definición
Datos inmutables
Características que definen al paradigma funcional hoy por hoy
Funciones de primera clase y de orden superior
01
CONCEPTOS BÁSICOS
DE LA PROGRAMACIÓN FUNCIONAL
Siguiente
Definición
La Programación Funcional (PF) es un paradigma que construye un software componiendo funciones puras, evitando el estado compartido, los datos mutables y los efectos secundarios. Suele guiarse por un principio de inmutabilidad.
La Programación Funcional trata sobre algunos principios únicos que la diferencian de otras metodologías de programación. Estos conceptos básicos garantizan un código más limpio y fácil de mantener, y refuerzan la eficacia de tu programa.
Siguiente
Datos inmutables
Los datos inmutables, como sugiere el término, no pueden alterarse una vez creados. En los Conceptos de Programación Funcional, la inmutabilidad es un principio fundamental. Elimina los efectos secundarios, porque si no puedes alterar un objeto de datos.
+ info
Siguiente
Funciones de primera clase y de orden superior
Las funciones de primera clase implican que las funciones en ese lenguaje se tratan como cualquier otra variable. Pueden crearse dinámicamente, pasarse como argumentos o utilizarse como valores de retorno.
Por otro lado, las funciones de Orden Superior son aquellas funciones que toman una o más funciones como argumentos, devuelven una función o ambas cosas. Considera los populares métodos de array de JavaScript como .filter(), .map() y .reduce(). Son funciones de orden superior porque toman una función como argumento.
Siguiente
Funciones puras en la programación funcional
Una función se considera "pura" si produce la misma salida para la misma entrada y no tiene efectos secundarios. Esencialmente, el resultado de una función pura depende únicamente de su entrada, lo que hace que el código sea predecible y más fácil de probar.
Siguiente
02
CARACTERÍSTICAS
Siguiente
Características principales
- Los lenguajes de programación puramente funcionales carecen de bucles for y while. - Se dice que en la programación funcional, las funciones son “ciudadanas de primera clase”, lo que nos viene a decir que prácticamente todo se hace con funciones, y no con bucles. - La programación funcional prefiere también las funciones puras, es decir, funciones sin side effects. Las funciones puras no dependen de variables externas o globales. Esto significa que para las mismas entradas, siempre se producen las mismas salidas. Por otro lado, en la programación funcional se prefiere variables inmutables, lo que significa que una vez creadas no pueden ser modificadas. Esto es algo que verdaderamente ahorra problemas, aunque la eficiencia puede ser discutible. En general, se considera que los lenguajes de programación funcionales son más seguros, y ofrecen formal verification.
Resaltar una vez más que aunque Python no es un lenguaje puramente funcional, ofrece algunas funciones propias de lenguajes funcionales como map, filter y reduce. Si estás interesado en más, puedes echar un vistazo a el paquete itertools.
Siguiente
Características que definen al paradigma funcional hoy por hoy
No hay estado global. Todas las funciones son puras: Dado un mismo input siempre devolvemos el mismo output. Todos los valores son inmutables: Lo único que podemos hacer es generar nuevos valores. No hay bucles: La iteración se realiza usando recursividad.
Como el modelo de cálculo lambda carecía de “cinta” para conservar el estado del programa, este se tenía que ir regenerando a través de la composición de funciones y la recursividad.
Referencias
REFERENCIAS
📕 Equipo editorial de IONOS. (2023, 21 julio). Programación funcional en Python. IONOS Digital Guide. https://www.ionos.mx/digitalguide/paginas-web/desarrollo-web/programacion-funcional-python/
📕 Conceptos de programación funcional: «Inmutabilidad», «Funciones puras» | StudySmarter. (s. f.). StudySmarter ES. https://www.studysmarter.es/resumenes/ciencias-de-la-computacion/programacion-funcional/conceptos-de-programacion-funcional/
📕 Programación funcional. (s. f.). El Libro de Python. https://ellibrodepython.com/programacion-funcional-python
📕 Qué es la programación funcional y sus características. Fernández, P. (2022, 9 septiembre). OpenWebinars.net. https://openwebinars.net/blog/que-es-la-programacion-funcional-y-sus-caracteristicas/
POR EJEMPLO:
Considera esta matriz de JavaScript: const array1 = [1, 2, 3, 4]; const array2 = array1; array2.push(5); Aquí, al introducir un nuevo valor en array2, también se modifica sin querer array1. Se trata de un efecto secundario que podría provocar errores. La inmutabilidad podría evitar este problema.
¿Sabías que...
• Se dice que en un lenguaje (como es el caso de Python) las funciones son de primera clase (o que son "objetos de primera clase"), cuando se pueden tratar como cualquier otro valor del lenguaje, es decir, cuando se pueden almacenar en variables, pasar como parámetro y devolver desde funciones, sin ningún tratamiento especial. • Cuando una función no recibe otras funciones como parámetro, se la denomina de primer orden. • En el caso en el que sí las reciba, se llama de orden superior.
Preferencia de las funciones puras a los procedimientos
Una función pura es comparable a una función matemática. Este concepto describe una función con las siguientes propiedades: • La función proporciona el mismo resultado al mismo argumento • La función tiene acceso exclusivo a sus argumentos • La función no tiene efectos secundarios En conjunto, todas estas propiedades indican que, al ejecutar una función pura, el sistema que lo rodea no cambia. A continuación, hay un ejemplo clásico de la función cuadrada f(x) = x x*, que en Python puede aplicarse fácilmente como función pura.