Сегодня будет первый пост в новом формате:
- Нормальные markdown-ссылки
- Публикация постов в обед, а не когда все спят.
Ну и, как обещал, тема сегодня будет масштабная. Поговорим про функциональное программирование. А именно про функторы и монады.
Названия у статей говорящие, и добавить нечего. Главное, не забывайте заглядывать в комментарии, к таким статьям всегда много познавательных холиваров.
Ну ладно, я до сих пор не сказал ни слова про Haskell. На самом деле, все эти концепции наиболее ярко выражены именно там, т.к. лежат в основе философии самого языка. Но ему пост будет посвящен чуть позже. А пока, по традиции, реализация на Python: OSlash. Примечательна эта библиотека тем, что имеет в своей wiki несколько интересных статей:
- Functors, Applicatives, And Monads In Pictures — форк оригинальной статьи, перевод которой в начале этого поста, но с примерами на OSlash.
- Three Useful Monads — следующая статья из этой серии, также с примерами на OSlash.
Ну и, конечно же, важный дисклеймер: не надо применять это в питоне. Вот серьезно. OSlash — не более, чем учебный познавательный пример. О полезных функциональных библиотеках для Python я уже писал ранее, а также про это будет ещё два поста. А вот функторы и монады - не надо. В то же время очень рекомендую разобраться в этом всём, чтобы расширить сознание, сломать мозг и научиться смотреть на код немного по другому (с потаённым страхом, ага).
Берегите себя и свои программы)