Если вам интересно, что такое монады. Дуг Крокфорд, автор книги «JavaScript The Good Parts», снялся в видео, объясняющем функциональное программирование и монады в целом.
В этом вечернем выступлении с YUIConf 2012 Дуглас Крокфорд обсуждает одну из самых неуловимых концепций программирования: монады. Цитировать:
В дополнение к тому, что это начало полезно, оно также проклято, и проклятие монады в том, что как только вы получаете прозрение, как только вы понимаете — «о, вот что это такое» — вы теряете способность объяснять это кому-либо.
В этом выступлении Крокфорд пытается разрушить давнее проклятие учебников по монадам, объясняя концепцию и применение монад таким образом, который действительно понятен аудитории.
По дороге он обсуждает первоклассные функции и роль JavaScript в их распространении. Он также сравнивает подход программиста к функциям и подход математика. Он также обсуждает, как преобразовать JavaScript в чисто функциональный язык и почему вы этого не хотите.
Вторая половина видео, кажется, расходится на параллелизм и асинхронное программирование, что также стоит посмотреть, чтобы понять, почему потоки — зло. Однако поворот в том, что обещания — это монады.
Посмотрите это видео, оно может длиться час, но оно расширит ваше понимание:
Краткая версия сообщения заключается в том, что монады — это способ обойти неизменность, которая является центральным принципом функционального программирования. Это означает, что в языке, который имеет изменяемые структуры данных и функции, монады на самом деле не актуальны, и вам не нужно о них беспокоиться.
И не упустите драгоценный камень с самого начала:
Фортран был разработан до того, как были изобретены строчные буквы, поэтому все в верхнем регистре.
и чудесное оскорбление по поводу окраски синтаксиса —
«… чтобы детям было легче программировать … все другого цвета. Для некоторых людей это имеет большое значение. Я считаю, что это мало что значит для меня, потому что я больше взрослый вверх.»
и на Java:
«Иногда кажется, что Java была оптимизирована для создания исключений с нулевым указателем».