Me gustaría entender Applicative
en términos de teoría de categorías.
La documentación de Applicative
dice que es un functor monoidal fuerte y laxo .
Primero, la página de Wikipedia sobre los functores monoidales dice que un functor monoidal es laxo o fuerte . Entonces, me parece que una de las fuentes está equivocada o usan los términos de manera diferente. ¿Alguien puede explicar eso?
Segundo, ¿cuáles son las categorías monoidales de las cuales Applicative
son functores monoidales? Supongo que los functores son endofunctores en la categoría estándar de Haskell (objetos = tipos, morfismos = funciones), pero no tengo idea de cuál es la estructura monoidal en esta categoría.
Gracias por la ayuda.
Functor
tienen una fuerza (producto WRT), simplemente porque se definen usandofmap
el lenguaje? Además, lo que me desconcierta es que su definición de y yo se invierte en comparación con su publicación de blog y el artículo de Wikipedia : ¿es un error tipográfico? Traté de definir el uso como , que claramente necesita .pure
i
pure' = \v -> fmap (\() -> v) (i ())
i :: (Applicative f) => () -> f ()
Functor
son fuertes (producto wrt).Para entender Aplicativo, como lo induce una mónada, quiero señalar la siguiente construcción:
fuente