В этом ответе от Конора МакБрайда (свинарник) обсуждаются Applicative
функторы, которые также являются контейнерами (типы данных, заданные набором фигур и семействомпозиций).Среди прочего он упоминает, что:
- Полиморфная функция между двумя контейнерами состоит из двух компонентов: один действует на фигуры, а другой на позиции.
- Форма аппликативных контейнеров образует моноидпод операцией, связанной с операцией приложения,
<*>
.
Мне было интересно, можно ли провести аналогичный анализ в категориальной обстановке и могу ли я прийти к тем же выводам, используя теорию категорий (главным образом потому, чтоЯ чувствую себя более свободно с теорией категорий, чем с зависимой теорией типов).
Я знаю, что Applicative
функторы являются моноидальными функторами (от (Set, ×, 1)
до (Set, ×, 1)
), и я считаю,что контейнеры можно рассматривать как функторы по спискам (как предложено здесь или здесь ) - но я не очень доволен этой концепцией или этим утверждением.Является ли это правильным подходом к аппликативным контейнерам, как к моноидальным функторам, которые формируются над списками?
PS: Дайте мне знать, если вы считаете, что stackoverflow не подходит для такого рода вопросов.