Ну можно изучать Хаскель, а можно математику. Соответственно, монады либо появятся сами собой в процессе изучения языка, либо... появятся сами собой в процессе изучения науки. :-) А начинать с них ни к чему. Видимо, так.
Монады появляются сами собой у гениев.
Вы не путаете с трихомонадами?
Или у тех, кто серьезно изучает материал.
Хорошая презентация. Но монады нельзя понять только из определений. Нужно понять их связь с сопряженными функторами. Только тогда может наступить сатори (а может и не наступить).
Все обобщение неверны. Включая данное. Но нельзя же не обобщать.
Ну, кое-где он явно гонит. Скажем, pointfree просто не собирается с нынешней mtl (и уже довольно давно).
А чего это у меня pointfree 1.0.4.3 только что вот буквально собралось с mtl вот буквально 2.1.2?
Понял свою ошибку. Читать "не собирается с нынешней base".
Кажется, послеедняя base регулярно ломает половину всего, нет?
Вроде правильно. Только, возможно, в самом начале знакомства с Хаскелем не стоит сразу смотреть определение IO монады, а временно считать, что ввод/вывод — это ad hoc конструкции языка. То есть пункт (6) немного отложить.
А почему вы считате, что правильно?
Потому что кто-то использовал звонкое мемопорождающее слово «монада» для обозначения довольно заурядной сущности. В стандартной библиотеке полно классов сравнимых по сложности с классом Monad, и, хотя монады довольно важны и часто используются, они не являются чем-то особенным, заслуживающим отдельных туториалов.
Я сам какое-то время перся с монад и даже засовывал их в SML-ный код, хотя в SML нет классов, так что приходилось описывать монадные операции для каждого типа отдельно и, что самое неудобное, именовать по-разному. Задним числом я осознаю, что тогда мне по сути нужны были комбинаторы (и функциональное программирование приучает к такому стилю), чтобы оперировать объектами, не заглядывая в их потроха без необходимости. Где-то для этого, действительно, удобны именно монадные операции, где-то другие комбинаторы.
Сейчас я достаточно хорошо знаю Хаскель, чтобы утверждать, что класс Monad — обычная рабочая лошадка наравне с другими.
за несколько часов уже 3 независимый пост про хаскель. Видимо, солнечные вспышки влияют
Монада аналогична эпифизу в его понимании Декартом.
Можно ли считать эту рекомендацию тюториалом по монадам, и если да, есть ли смысл читать далее первого пункта? Ну, хорошо, второго?
Тюториал по X содержит правила пользования X. Это правила пользования тюториалами по монадам. Тюториалы же по монадам сами не являются монадами, кажется, никогда ;) |