Я хотів би зрозуміти Applicative
з точки зору теорії категорій.
У документації на нього Applicative
сказано, що це сильний в'ялий моноїдний функтор .
По-перше, на сторінці Вікіпедії про моноїдних функторів говориться, що моноїдний функтор або слабкий, або сильний . Тож мені здається, що або одне з джерел помиляється, або вони використовують по-різному терміни. Хтось може це пояснити?
По-друге, якими моноїдними категоріями Applicative
є моноїдні функціонери? Я припускаю, що функтори є ендофункторами за стандартною категорією Хаскелл (об'єкти = типи, морфізми = функції), але я поняття не маю, що таке моноїдна структура в цій категорії.
Дякуємо за допомогу.
Functor
fmap
pure
i
pure' = \v -> fmap (\() -> v) (i ())
i :: (Applicative f) => () -> f ()