Want to create interactive content? It’s easy in Genially!

Get started free

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:

Practical Presentation

Smart Presentation

Essential Presentation

Akihabara Presentation

Pastel Color Presentation

Modern Presentation

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.