Santiago Quiñones Cuenca
Software Developer and Educator, Master in Software Engineering, Research UTPL {Loja, Ecuador} Repositories: http://github.com/lsantiago
Programación funcional y reactiva - Computación
Presentación de plan
Plan de estudios
Horarios
Clase, prácticas y experimentación y tutoría
Paralelo B
Paralelo C
Plan de estudios: contenidos
Primer bimestre, resumen de actividades calificadas
Plan de estudios: contenidos
Segundo bimestre, resumen de actividades calificadas
Calificación
Talleres
Plan de estudios
Resumen de contenidos
Bibliografía
Básica
Winitzki, S. (2021). The Science of Functional Programming. Disponible para descarga en: Bibliografía (Canvas).
Herramientas a utilizar
Herramientas
Algunas
Herramientas
Introducción a la programación funcional
Semana 1
Dado el siguiente conjunto de datos: 45, 47, 30, 40, 41, 38, 44, 48, 51, 60, 59, elabore métodos que permitan:
Ejercicio resuelto
Calcular promedio
Ejercicio resuelto
Contar mayores o iguales
Ejercicio resuelto
Contar menores
Ejercicio resuelto
Funcionamiento
Dado el siguiente conjunto de datos: 45, 47, 30, 40, 41, 38, 44, 48, 51, 60, 59, elabore métodos que permitan:
pero ahora, sin usar variables ni ciclos repetitivos
¿Porqué se nos hace difícil?
¿Porqué se nos hace difícil?
Una razón
Nos limita nuestros conocimientos y nos exige cambios en nuestra forma de pensar.
Cambio de paradigma.
¿Cuántos paradigmas de programación conoces?
Imperativa vs Declarativa
Imagine un método que calcule una puntuación de un juego de palabras. El jugador envía una palabra y se le otorga una puntuación. Suponga que por cada carácter, de la palabra, se asigna un punto.
Imperativa
Imagine un método que calcule una puntuación de un juego de palabras. El jugador envía una palabra y se le otorga una puntuación. Suponga que por cada carácter, de la palabra, se asigna un punto.
Declarativa
Imagine un método que calcule una puntuación de un juego de palabras. El jugador envía una palabra y se le otorga una puntuación. Suponga que por cada carácter, de la palabra, se asigna un punto.
Declarativa vs Imperativa
Imagine un método que calcule una puntuación de un juego de palabras. El jugador envía una palabra y se le otorga una puntuación. Suponga que por cada carácter, de la palabra, se asigna un punto.
Imperativa vs Declarativa
En busca del computador de programa almacenado
Breve descripción histórica
¿Cómo cambiar esto?
En busca del computador de programa almacenado
Breve historia
Arquitectura von Neumann
Consecuencias
Arquitectura von Neumann
Consecuencias
¿Existe otra alternativa?
En busca del computador de programa almacenado
Programación funcional
Definición
La programación funcional es un enfoque de programación basado en llamadas a funciones.
Programación funcional
Paradigma de programación
PF es una paradigma de programación
Caracteriza por:
No usar ciclos repetitivos
Emplea datos inmutables
Funciones puras de orden superior
El código también es un dato/valor
Un ejercicio relativamente simple:
Necesita contar cuántos números que se encuentran en una lista son pares.
pero,
sin usar variables ni ciclos repetitivos
Programación funcional
Introducción
Necesita contar cuántos números que se encuentran en una lista son pares
Scala
Python
Imperativa
Declarativa
Programación funcional
Datos inmutables
Inmutable == que no puede cambiar
Los valores literales simples en los lenguajes de programación ya son inmutables.
Todo es una función pura
Creación de valores nuevos
Puedes confiar en que nadie se puede meter con tus datos
Programación funcional
Lenguajes funcionales
Actualmente contamos con una gran cantidad de lenguajes en donde podemos hacer uso de la programación funcional, por ejemplo :
Taller
Taller Individual
Abrir repositorio virtual en gitpod.io y trabajar en el archivo b1s1.md.
By Santiago Quiñones Cuenca
Paradigmas de programación
Software Developer and Educator, Master in Software Engineering, Research UTPL {Loja, Ecuador} Repositories: http://github.com/lsantiago