Подтвердить что ты не робот

Monoid vs monad в Scala

Недавно я попытался найти хороший источник разницы между монадами и моноидами.

Может ли кто-нибудь предоставить ссылку на хороший ресурс по этому поводу или, возможно, потребуется разобраться в сходствах/различиях?

4b9b3361

Ответ 1

Монады являются моноидами в категории endofunctors. Поэтому монада - всего лишь один пример моноида, который является более общим понятием.

И хотя это может быть технически справедливо, самый простой ответ заключается в том, что монады и моноиды действительно ничем не похожи друг на друга, и вы не должны пытаться узнать разницу между ними, а просто изучать их. Там тонны материала об этом в Интернете, легко googled.

Ответ 2

Смотрите этот ответ о том, почему монады являются частными случаями моноидов в моноидальных категориях. Последнее, однако, является обобщением классического моноида, определенного через двоичную операцию и единицу. Монада не классический моноид. Смотрите ответ для более подробной информации и объяснений.