Slide 1

Slide 1 text

FUNCTORES, MÓNADAS Y PROMESAS Marzo, 2021

Slide 2

Slide 2 text

ALFREDO BONILLA What The Hack show @brolag alfredobonilla.com

Slide 3

Slide 3 text

@brolag - Te voy a explicar qué es una mónada - 🐵 ajá - Una mónada en X es simplemente un monoide en la categoría de endofunctores de X, con el producto × reemplazado por la composición de los endofunctores y la unidad establecida por el endofunctor de identidad. - ay no... Mónadas

Slide 4

Slide 4 text

@brolag En esta presentación trataremos de explicar las *nociones* de functores y mónadas, no la teoría matemática de categorías. ⚠ Descargo de responsabilidad

Slide 5

Slide 5 text

😱 "Una vez que entiendas las mónadas y cómo usarlas, perderas la capacidad de explicarlas a otras personas. " - Gilad Bracha. @brolag La maldición monádica de Lady Monadgreen

Slide 6

Slide 6 text

Una mónada es una manera de componer funciones que requieren un contexto (proceso computacional) junto con el valor de retorno. Las mónadas lenvantan el tipo de un valor al contexto, aplanan, y mapean. @brolag Mónadas (la explicación amigable)

Slide 7

Slide 7 text

Map Significa aplicar una función a x y retornar y @brolag Conceptos - Map

Slide 8

Slide 8 text

Type Lift Significa levantar el tipo de un valor al contexto. Es decir, agregar un API al valor para poder disparar procesos computacionales contextuales. @brolag Conceptos - Type Lift

Slide 9

Slide 9 text

Flatten (flatMap) Significa desenvolver un valor de un contexto. @brolag Conceptos - FlatMap

Slide 10

Slide 10 text

Contexto Es el detalle computacional de la mónada que incluye mapear, levantar y aplanar. La idea de la mónada es abstraer el contexto para poder componer funciones de manera más simple. - map espera que el contexto devuelva un valor - flatMap espera que el contexto devuelva un functor para aplanarlo @brolag Conceptos - Contexto

Slide 11

Slide 11 text

Functor Patrón de diseño que permite que un tipo genérico aplique una función en el interior sin cambiar la estructura del tipo genérico. @brolag Functores

Slide 12

Slide 12 text

Endofunctor Un functor que asigna una categoría a esa misma categoría. Functor de identidad Asigna un objeto a sí mismo y un morfismo a sí mismo. @brolag Tipos de functores

Slide 13

Slide 13 text

Las funciones mapean x => y Los functores mapean con un contexto Functor(x) => Functor(y) Las mónadas aplanan y mapean con un contexto Monada (Monada (x)) => Monada (y) @brolag Funciones, Functores y Mónadas

Slide 14

Slide 14 text

- Un functor es algo que puedes mapear - Una mónada es un functor que puedes aplanar @brolag En resumen y de manera sobre-simplificada...

Slide 15

Slide 15 text

https://stackblitz.com/edit/functores-monadas-promesas?file=index.ts @brolag Ejemplos de código

Slide 16

Slide 16 text

Muchas Gracias What The Hack show @brolag alfredobonilla.com