Монады = функторы + идемпотентность (типа)?

В Haskell монады определяются тройкой kleisli.

В теории категорий в целом можно сказать:

Монады = Функторы + Идемпотентность монадического типа (не значение)?

Привет, вам следует посетить Программисты.SE или CS.SE для вопросов, не относящихся к какому-либо исходному коду. Также возьмите Тур.

snipsnipsnip 26.10.2018 03:57

Это связано с stackoverflow.com/questions/52973336/…?

jberryman 26.10.2018 04:40

@jberryman Предположительно, это продолжение этого (см. комментарии к ответу там). Обратите внимание, что война за откат по этому вопросу, похоже, привела к 24-часовой приостановке OP.

duplode 26.10.2018 04:44
2
3
178
1

Ответы 1

Нет, монада категорически не идемпотентна: хотя существует требование естественного преобразования

mu_x : T(T(x)) -> T(x)

в общем случае нет два объекта, выбранных таким образом, равны, то есть

T(T(x)) = T(x)

в общем случае не выполняется даже с точностью до изоморфизма.

Даже в ограниченном пространстве Haskell Monad легко увидеть это в действии: Maybe (Maybe ()) и Maybe () являются явно неравными типами с разным количеством семантических объектов; игнорирование низов:

Nothing, Just () -- Maybe ()
Nothing, Just Nothing, Just (Just ()) -- Maybe (Maybe ())

или с низами:

_|_, Nothing, Just _|_, Just () -- Maybe ()
_|_, Nothing, Just _|_, Just Nothing, Just (Just _|_), Just (Just ()) -- Maybe (Maybe ())

Спасибо за ответ. У меня вопрос. насчет «T (T (x)) = T (x) вообще не выполняется, даже с точностью до изоморфизма.». Я думал, что если монада идентичности является изоморохизмом, то T(T(x)) = T(x) выдержит. Я ошибся?

user10180218 28.10.2018 17:58

@ bayesian-study Вы не ошиблись. Но большинство монад не являются монадой идентичности.

Daniel Wagner 28.10.2018 18:29

"обычно не выполняется, даже с точностью до изоморфизма", кажется, означает, как если бы T(T(x)) = T(x) не придерживался монады тождества изомофизма.

user10180218 29.10.2018 09:37

@ bayesian-study Это означает, что он не поддерживает В основном, то есть не для всех монад.

Daniel Wagner 29.10.2018 13:41

Другие вопросы по теме