Я хотел бы понять Applicativeс точки зрения теории категорий.
Документация для Applicativeговорит , что это сильный слабый моноидальный функтор .
Во-первых, на странице Википедии о моноидальных функторах говорится, что моноидальный функтор слабый или сильный . Так что мне кажется, что либо один из источников неверен, либо они используют термины по-другому. Кто-нибудь может это объяснить?
Во-вторых, каковы моноидальные категории Applicativeмоноидальных функторов? Я предполагаю, что функторы являются эндофункторами в стандартной категории Haskell (объекты = типы, морфизмы = функции), но я понятия не имею, что такое моноидальная структура в этой категории.
Спасибо за помощь.
Functorимеют силу (продукт WRT) просто потому, что они определены с использованиемfmapязыка? Кроме того, что меня озадачивает, что ваше определение и i перевернуто по сравнению с вашим постом в блоге и статьей в Википедии - это опечатка? Я попытался определить, используя как , что явно необходимо .pureipure' = \v -> fmap (\() -> v) (i ())i :: (Applicative f) => () -> f ()