Monoid vs monad в Scala
Недавно я попытался найти хороший источник разницы между монадами и моноидами.
Может ли кто-нибудь предоставить ссылку на хороший ресурс по этому поводу или, возможно, потребуется разобраться в сходствах/различиях?
Ответы
Ответ 1
Монады являются моноидами в категории endofunctors. Поэтому монада - всего лишь один пример моноида, который является более общим понятием.
И хотя это может быть технически справедливо, самый простой ответ заключается в том, что монады и моноиды действительно ничем не похожи друг на друга, и вы не должны пытаться узнать разницу между ними, а просто изучать их. Там тонны материала об этом в Интернете, легко googled.
Ответ 2
Смотрите этот ответ о том, почему монады являются частными случаями моноидов в моноидальных категориях. Последнее, однако, является обобщением классического моноида, определенного через двоичную операцию и единицу. Монада не классический моноид. Смотрите ответ для более подробной информации и объяснений.