Wyjaśnienie funktora aplikacyjnego w kategoriach kategorycznych - funktory monoidalne


40

Chciałbym zrozumieć Applicativew kategoriach teorii kategorii.

Dokumentacja dla Applicativetwierdzi, że jest to silny funktor LAX monoidal .

Po pierwsze, strona Wikipedii o funktorach monoidalnych mówi, że funktor monoidalny jest luźny lub silny . Wydaje mi się więc, że jedno ze źródeł jest niepoprawne lub używają terminów inaczej. Czy ktoś może to wyjaśnić?

Po drugie, jakie są monoidalne kategorie Applicativefunktorów monoidalnych? Zakładam, że funktory to endo-funktory w standardowej kategorii Haskella (obiekty = typy, morfizmy = funkcje), ale nie mam pojęcia, jaka jest struktura monoidalna w tej kategorii.

Dzięki za pomoc.

Odpowiedzi:


35

W grze występują tutaj dwa zastosowania słowa „siła”.

  • Silne endofunctor ponad monoidal kategorii ( C , , I ) jest taki, który pochodzi z naturalnego transformacji Ď : F. ( B ) F ( B ) spełniających pewne warunki spójność względem stowarzyszacz, nad którym przeświecam. Ten warunek jest czasami wymawiany również jako „ F ma siłę”.F:CC(C,,I)σ:AF(B)F(AB)F

  • F:CD(C,,I)(D,,J)ϕ:F(A)F(B)F(AB)i:JF(I), ponownie spełniając warunek spójności w odniesieniu do asocjatorów.

  • F:CDϕiF(AB)F(A)F(B)ϕ

Funktorem aplikacyjnym, w sensie programów Haskella, jest luźny monofalowy endofunkor o sile , którego monoidalną strukturą są produkty kartezjańskie. Oto dlaczego otrzymujesz paradoksalnie brzmiący termin „silny luźny funktor monoidalny”.

Fmap:(AB)(F(A)F(B))

Wreszcie, jeśli interesuje Cię teoria typów funktorów aplikacyjnych w stylu Haskell, właśnie o tym napisałem na blogu.


1
Functorfmapϕipureipure' = \v -> fmap (\() -> v) (i ())i :: (Applicative f) => () -> f ()

1
W tej odpowiedzi miałem literówkę - teraz naprawioną. I tak, wszystkie przypadki Functorsą silne (wrt produktu).
Neel Krishnaswami

Czy mógłby Pan także rozwinąć stanowisko Monady? Jeśli dobrze rozumiem, jest to również endoidalny monoid.
egdmitry

Hask

Czy mogę zaproponować użycie słowa strongy, aby uniknąć zderzenia notacji z „strong”? Jest to szkocka (szczególnie szczególnie tutaj) dialektalna odmiana „silnego”, po raz pierwszy zastosowana w Biblii Wycliffe.
Fosco

3

Aby zrozumieć zastosowanie, wywołane przez monadę, chcę wskazać następującą konstrukcję:

FAnat(Hom(A,B),FB)

a(gF(g)(a))
FABAFB.
FAFA
FAFBAFFB.
FFBFB
FBAFAFB,
LiftM2 id
Korzystając z naszej strony potwierdzasz, że przeczytałeś(-aś) i rozumiesz nasze zasady używania plików cookie i zasady ochrony prywatności.
Licensed under cc by-sa 3.0 with attribution required.