монаду другую монаду ?
что значит передавать монаду в монаду?
Так чтобы одна монада могла получать в процессе свёртки(fold) значение из другой монады с fold(...)
можно пример, какие монады имеются ввиду?
Это хороший вопрос)) Хотя я имею ввиду как в целом абстрактное понятие под - монадами
Bind по типу Хаскеля ? Там насколько я понимаю подразумевается полиморфизм и в bind-связывание можно скидывать разные функции ?
Монада в самом топорном случае, без умных слов и точных определений должны иметь вот такую штуку: fun <A, B> M<A>.bind(f: (A) -> M<B>): M<B> где M это некоторый тип конкретной монады. Он говорит о том, что мы не можем в общем случае сделать из Either какой-нибудь Option/List/rx.Maybe или что-нибудь в этом роде. У монады вообще не обязан быть fold, это свойство некоторых конкретных типов данных, которые по совпадению являются монадами
А в монаде может не быть side effects ? В Википедии встречается определение, что монады якобы созданы под вызов из чистых функции для обработки каких-то побочных эффектов .Или это не всегда так ?
Какие сайд-эффекты у Either?
Обсуждают сегодня