Пояснення додаткового функтора в категоричному виразі - моноїдні функтори


40

Я хотів би зрозуміти Applicativeз точки зору теорії категорій.

У документації на нього Applicativeсказано, що це сильний в'ялий моноїдний функтор .

По-перше, на сторінці Вікіпедії про моноїдних функторів говориться, що моноїдний функтор або слабкий, або сильний . Тож мені здається, що або одне з джерел помиляється, або вони використовують по-різному терміни. Хтось може це пояснити?

По-друге, якими моноїдними категоріями Applicativeє моноїдні функціонери? Я припускаю, що функтори є ендофункторами за стандартною категорією Хаскелл (об'єкти = типи, морфізми = функції), але я поняття не маю, що таке моноїдна структура в цій категорії.

Дякуємо за допомогу.

Відповіді:


35

Тут насправді два вживання слова "сила".

  • F:CC(C,,I)σ:AF(B)F(AB)F

  • F:CD(C,,I)(D,,J)ϕ:F(A)F(B)F(AB)i:JF(I), що знову відповідає умові узгодженості щодо асоціаторів.

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

Достовірний функтор, в розумінні програм Haskell, являє собою млявий моноїдний ендофунктор з міцністю , причому моноїдна структура, про яку йдеться, є декартовими продуктами. Тож саме тому ви отримуєте парадоксально звучачий термін "сильний в'ялий моноїдальний функтор".

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

Нарешті, якщо вас зацікавила теорія типів прикладних функторів у стилі Haskell, я щойно про це вела блог.


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

1
У мене була відповідна помилка в цій відповіді - тепер виправлено. І так, всі екземпляри Functorє сильними (wrt продукт).
Ніл Крішнасвамі

Не могли б ви також детальніше розібратися, де стоїть Монада? Якщо я правильно розумію, це також моноїдний ендофунктор.
egdmitry

Hask

Чи можу я запропонувати використовувати слово міцний, щоб уникнути зіткнення позначень із "сильним"? Це шотландська (настільки конкретна тут) діалектна варіація "сильних", вперше використана в Біблії Вікліфа.
Фоско

3

Щоб зрозуміти додаток, викликаний монадою, я хочу зазначити таку конструкцію:

FAnat(Hom(A,B),FB)

a(gF(g)(a))
FABAFB.
FAFA
FAFBAFFB.
FFBFB
FBAFAFB,
LiftM2 id
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.