SlideShare une entreprise Scribd logo
1  sur  21
Télécharger pour lire hors ligne
¿Qué demonios
es la
programación
funcional?
La programación funcional es
un paradigma que trata la
computación como la
evaluación de funciones
altamente componibles,
evitando estados y datos
mutables.
Funciones
int => string = x=> x.toString
(int, int) => int = (x, y) => x * y
(int, int) => int = (m, a) => m * a
Tipos
Álgebra de
tipos
producto (combinación)
Tuple(string, boolean)
Point(int, int)
suma (uno u otro)
Option[String]
Constructores
de tipos
Option[T]
List[N]
Futuro[S]
Either[A, B]
DatabaseOperation[R]
Id[P]
Type Classes
Inmutabilidad
Pureza
pureF(x: Int, y: Int) =>
x + y
pureG(s: String) =>
s.trim().toUpperCase()
impureF(x: Int, y: Int) =>
x = 7
x + y
impureG(s: String) =>
log(“input value is ” + s)
s.trim().toUpperCase()
Transparencia
referencial
(x: Int, y: Int, z: Int) => {
a = sum(x, y)
b = sum(y, z)
c= sum(x, z)
return a * b * c
}
(x = 1, y = 2, z = 3) => {
a = sum(1, 2)
b = sum(2, 3)
c= sum(1, 3)
return a * b * c
}
(x = 1, y = 2, z = 3) => {
a = 3
b = 5
c= 4
return a * b * c
}
High Order
Functions
Currying
f = exponent: Int => base: Int => base^exponent
f(2) = base: Int => base^2
f(2)(3) = 9
Recursividad
factorial(n: Int, acc: Int) => {
if (n == 0) acc
else factorial(n - 1, acc * n)
}
Concurrencia
Mónadas
Composición
de funciones
La programación funcional es
un paradigma que trata la
computación como la
evaluación de funciones
altamente componibles,
evitando estados y datos
mutables.
“Reglas del club de la
programación funcional:
1. No debes dejar de hablar de la
programación funcional
2. ¡Nunca dejes de hablar de la
programación funcional!
Fuente: https://medium.com/swift-programming/swift-functional-programming-basic-concepts-a6b0c3937d56
Lecturas recomendables:
● Podcast sobre programación funcional https://www.ivoox.com/19348205
● A Pragmatic Introduction to Category Theory - Daniela Sfregola (Lamba World 2018)
https://youtu.be/MvQxNm5gn8g
● Functores, Aplicativos y Mónadas en imágenes (versión en Español):
https://medium.com/@miguelsaddress/funtores-aplicativos-y-mónadas-en-imágenes-21ab0e60fe23

Contenu connexe

Tendances (20)

Arreglos En Una Dimension
Arreglos En Una DimensionArreglos En Una Dimension
Arreglos En Una Dimension
 
Ecuacion lineal
Ecuacion linealEcuacion lineal
Ecuacion lineal
 
Curso excel parte 4
Curso excel parte 4   Curso excel parte 4
Curso excel parte 4
 
Gráficos en matlab
Gráficos en matlabGráficos en matlab
Gráficos en matlab
 
Arreglos
ArreglosArreglos
Arreglos
 
Arreglos java
Arreglos javaArreglos java
Arreglos java
 
Practica 12
Practica 12Practica 12
Practica 12
 
Manejo Vectores Matlab
Manejo Vectores MatlabManejo Vectores Matlab
Manejo Vectores Matlab
 
Arreglos
ArreglosArreglos
Arreglos
 
Practica12
Practica12Practica12
Practica12
 
Matlab
MatlabMatlab
Matlab
 
Semana 3 del 11 15 abril-ci
Semana 3 del 11 15 abril-ciSemana 3 del 11 15 abril-ci
Semana 3 del 11 15 abril-ci
 
Practica 2
Practica 2Practica 2
Practica 2
 
Practica2
Practica2Practica2
Practica2
 
Practica 2
Practica 2Practica 2
Practica 2
 
Practica 2
Practica 2Practica 2
Practica 2
 
Aqi
AqiAqi
Aqi
 
13
1313
13
 
Webinar dic ic-ves mat introducoria jueves 4 julio funciones
Webinar dic ic-ves  mat introducoria jueves 4 julio funcionesWebinar dic ic-ves  mat introducoria jueves 4 julio funciones
Webinar dic ic-ves mat introducoria jueves 4 julio funciones
 
Tema 6: Definiciones por recursión en Haskell
Tema 6: Definiciones por recursión en Haskell Tema 6: Definiciones por recursión en Haskell
Tema 6: Definiciones por recursión en Haskell
 

Similaire à ¿Qué demonios es la programación funcional? (20)

Programacion en python_1
Programacion en python_1Programacion en python_1
Programacion en python_1
 
Sql basico parte_ii_
Sql basico parte_ii_Sql basico parte_ii_
Sql basico parte_ii_
 
Python workshop
Python workshopPython workshop
Python workshop
 
[Sesion03] introduccion python
[Sesion03] introduccion python[Sesion03] introduccion python
[Sesion03] introduccion python
 
Clase 09
Clase 09 Clase 09
Clase 09
 
1. vers. cap-3_tipos_dedatos
1. vers. cap-3_tipos_dedatos1. vers. cap-3_tipos_dedatos
1. vers. cap-3_tipos_dedatos
 
1. vers. cap-3_tipos_dedatos
1. vers. cap-3_tipos_dedatos1. vers. cap-3_tipos_dedatos
1. vers. cap-3_tipos_dedatos
 
Bryan gordillo ensayo_arreglos
Bryan gordillo ensayo_arreglosBryan gordillo ensayo_arreglos
Bryan gordillo ensayo_arreglos
 
Intro haskell
Intro haskellIntro haskell
Intro haskell
 
Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)Tipos de Datos Abstractos (TDA)
Tipos de Datos Abstractos (TDA)
 
Tipos de datos en R
Tipos de datos en RTipos de datos en R
Tipos de datos en R
 
Pf con scala
Pf con scalaPf con scala
Pf con scala
 
Java
JavaJava
Java
 
Programar en c
Programar en cProgramar en c
Programar en c
 
Sql basico parte_ii_
Sql basico parte_ii_Sql basico parte_ii_
Sql basico parte_ii_
 
Introducción a Scala
Introducción a ScalaIntroducción a Scala
Introducción a Scala
 
Resolución de problemas con java
Resolución de problemas con javaResolución de problemas con java
Resolución de problemas con java
 
IC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - EjerciciosIC - Estructuras de Secuencia - Ejercicios
IC - Estructuras de Secuencia - Ejercicios
 
Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402Practicas java gustavo carbajal macias 402
Practicas java gustavo carbajal macias 402
 
Pensando funcionalmente
Pensando funcionalmentePensando funcionalmente
Pensando funcionalmente
 

¿Qué demonios es la programación funcional?