J'aimerais comprendre Applicative
en termes de théorie des catégories.
La documentation de ce documentApplicative
indique qu’il s’agit d’ un foncteur fort monoïdal laxiste .
Premièrement, la page Wikipedia sur les foncteurs monoïdaux indique qu’un foncteur monoïdal est laxiste ou fort . Il me semble donc que l'une ou l'autre des sources est fausse ou qu'elle utilise les termes différemment. Quelqu'un peut-il expliquer cela?
Deuxièmement, quelles sont les catégories monoïdales qui Applicative
sont des foncteurs monoïdaux? Je suppose que les foncteurs sont des endo-foncteurs de la catégorie standard de Haskell (objets = types, morphismes = fonctions), mais je n'ai aucune idée de la structure monoïdale de cette catégorie.
Merci pour l'aide.
Functor
ont une force (produit WRT), simplement parce qu'elles sont définies en utilisantfmap
le langage? De plus, ce qui me laisse perplexe sur le fait que votre définition de et i soit inversée par rapport à la fois à votre article de blog et à l'article de Wikipedia - s'agit-il d'une faute de frappe? J'ai essayé de définir utiliser comme , ce qui est clairement nécessaire .pure
i
pure' = \v -> fmap (\() -> v) (i ())
i :: (Applicative f) => () -> f ()
Functor
sont fortes (par rapport au produit).Pour comprendre l’application, telle qu’indiquée par une monade, je souhaite signaler la construction suivante:
Le lemme de Yoneda implique qu'il existe un isomorphisme entre et n a t ( H o m ( A , B ) , F B ) . Dans la catégorie des types Haskell, il s'agit de la cartographie a ↦ ( g ↦ F ( g ) ( a ) ) de type F A → B A , puis en appliquant la carte des flèches des foncteurs à la fonction résultante - si les composants de la transformation naturelle sens comme des flèches - et abstraiteFUNE n a t ( H o m (A,B),FB )
la source