Мона́да — особый тип данных в функциональных языках программирования, для которого возможно задать императивную последовательность выполнения некоторых операций над хранимыми значениями. Монады позволяют задавать последовательность выполнения операций, производить операции с побочными эффектами и другие действия, которые сложно или вовсе невозможно реализовать в функциональной парадигме программирования другими способами.
Концепция монады и термин изначально происходят из теории категорий, где она определяется как функтор с дополнительной структурой. Исследования, начатые в конце 1980-х — начале 1990-х годов, установили, что монады могут привнести, казалось бы, разрозненные проблемы компьютерной науки в единую функциональную модель. Теория категорий также выдвигает несколько формальных требований, так называемых монадических законов, которые должны соблюдаться любой монадой и могут быть использованы для верификации монадического кода.
Это я не знаю( Но у них, кстати, прикольные свадебные традиции...невесту с женихом обмазывают жиром, зашивают нагенькими в мешок из шкур и запускают эту конструкцию с холма