мы задаём последовательность?
Я вот из определения монады никаких последовательностей не увидел. Увидел, что её операции инвариантны относительно группировки (ассоциативны), больше ничего.
Что такое стрелка (морфизм видимо) как последовательная функция? С морфизмами понятие последовательности вообще рядом не стояло, как мне кажется.
P.S. Да, я понимаю, что монады можно использовать для описания типов, подразумевающих последовательные вычисления, возможно с сайд эффектами (IO), но само понятие монады более общее, чем последовательность вычислений. Монада, в зависимости от того, какой контекст абстрагирует, может выстраивать строгую последовательность вычислений, а может и не выстраивать. IO выстраивает. Для List или Java Stream последовательность вычислений не особо важна во многих случаях, вот они обычно и не выстраивают никаких последовательностей и не описывают.
Посмотри usage, там вполне явно идёт форк и склейка, bind там вполне последовательный, равно как и return. То что в жаве и котлине во первых не lawful (option уж точно), во вторых ты говоришь про map, который от функтора а не от монады
Обсуждают сегодня