Комментарии 3
Написано по английски, но русскими словами. Очень тяжело читать и тем более понять о чем речь, проше тогда уж источник прочитать. Делайте вместо переводов конспекты или пересказы своими словами.
Монады - это своеобразный оператор композиции двух вычислений (типа ";" в С). Минус обычных монад в том, что для каждого вида вычислений нужен свой оператор. Эта проблема решается с помощью алгебраических эффектов (убер монады), так что про сами монады можно спокойно забыть. Эффекты гораздо понятнее. Так же не должно быть никакой проблемы с квадратичной сложностью, монада - это просто композиция двух вычислений, т.е. не добавляет сложности сама по себе. Либо исполнение монад не оптимизированно (а их действительно нужно оптимизировать, чтобы убрать квадрат), либо пользователь сам написал такую программу. Никакой опасности монады не несут.
Исследуем монады в Rust через тестирование на основе свойств