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

Alfredo Bonilla

March 30, 2021
Tweet

More Decks by Alfredo Bonilla

Other Decks in Programming

Transcript

  1. @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
  2. @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
  3. 😱 "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
  4. 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)
  5. 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
  6. 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
  7. 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
  8. 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
  9. 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
  10. - Un functor es algo que puedes mapear - Una

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