, Вы не доказали это последнее утверждение. Более того - «если вы проверяете законы монад, вы легко можете сказать, что они тоже монады» - это никоим образом не является «доказательством». ОП, кажется, спрашивает конкретно о том, образуют ли обещания монаду, но вы не приложили усилий, чтобы доказать или даже неофициально продемонстрировать эту теорему.

чал функциональное программирование и встречал монады, функторы и аппликативы.

Насколько я понимаю, применяются следующие определения:

а) (A => B) => C [A] => C [B] | Функтор

б) (A => C [B]) => C [A] => C [B] | монада

в) (C [A => B]) => C [A] => C [B] | Прикладное

(ссылка:https://thedet.wordpress.com/2012/04/28/functors-monads-applicatives-can-be-so-simple/)

Кроме того, я понимаю, что Монада - это особый случай Функтора. Как в, он применяет функциювозвращает возвращаемое значение в упакованное значение и возвращает упакованное значение.

Когда мы используемPromise.then(func)мы передаем Promise (то есть C [A]) функцию, которая обычно имеет подписьA => B и верните другое Обещание (т. е. C [B]). Так что я думал, что Обещание будет только Функтором, а не Монадой, какfunc возвращает B, а не C [B].

Однако, погуглив, я обнаружил, что Обещание - это не только Функтор, но и Монада. Интересно почему, какfunc не возвращает упакованное значение C [B], а просто B. Чего мне не хватает?

Ответы на вопрос(4)

Ваш ответ на вопрос