Mi piacerebbe capire Applicativein termini di teoria delle categorie.
La documentazione per Applicativedice che si tratta di un forte funzione lenta monoidale .
In primo luogo, la pagina di Wikipedia sui funzioni monoidali afferma che un funzione monoida è lassista o forte . Quindi mi sembra che una delle fonti sia sbagliata o che usino i termini in modo diverso. Qualcuno può spiegarlo?
In secondo luogo, quali sono le categorie monoidali dei quali Applicativesono i funzioni monoidali? Presumo che i funzioni siano endo-funzioni nella categoria standard di Haskell (oggetti = tipi, morfismi = funzioni), ma non ho idea di quale sia la struttura monoidale in questa categoria.
Grazie per l'aiuto.
Functorhanno un punto di forza (prodotto WRT), semplicemente perché sono definite usandofmapall'interno della lingua? Inoltre, cosa mi fa pensare che la tua definizione di e sia invertita rispetto sia al tuo post sul blog che all'articolo di Wikipedia - è un errore di battitura? Ho provato a definire usando come , che chiaramente ha bisogno . iopureipure' = \v -> fmap (\() -> v) (i ())i :: (Applicative f) => () -> f ()