Upgrade to Pro — share decks privately, control downloads, hide ads and more …

Functores, Mónadas y Promesas

Functores, Mónadas y Promesas

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...

Ejemplo de código

https://stackblitz.com/edit/functores-monadas-promesas

8dbca2c5e7e0296afd964af7d1f7b55e?s=128

Alfredo Bonilla

March 30, 2021
Tweet

Transcript

  1. FUNCTORES, MÓNADAS Y PROMESAS Marzo, 2021

  2. ALFREDO BONILLA What The Hack show @brolag alfredobonilla.com

  3. @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
  4. @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
  5. 😱 "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
  6. 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)
  7. Map Significa aplicar una función a x y retornar y

    @brolag Conceptos - Map
  8. 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
  9. Flatten (flatMap) Significa desenvolver un valor de un contexto. @brolag

    Conceptos - FlatMap
  10. 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
  11. 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
  12. 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
  13. 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
  14. - Un functor es algo que puedes mapear - Una

    mónada es un functor que puedes aplanar @brolag En resumen y de manera sobre-simplificada...
  15. https://stackblitz.com/edit/functores-monadas-promesas?file=index.ts @brolag Ejemplos de código

  16. Muchas Gracias What The Hack show @brolag alfredobonilla.com