Этот канал в основном читают гоферы и питонисты, поэтому сегодня будет пост про haskell, чтобы всем было одинаково бесполезно. Вообще, я примерно на месяц основательно погрузился в это всё, с кучей книг, теорией категорий и прочим. Вот некоторые материалы, которые я нашёл интересными и эффективными.
О Haskell по-человечески, да ещё и на русском. Книга пока не дописана, причём, как сериал, обрывается на самом интересном месте. Очень просто и понятно описано, самое то для старта.
Learn You a Haskell for Great Good! – очень интересная книга, детальная, с погружением в стандартную библиотеку, монады и вот это вот всё.
Real World Haskell – идеально для глубокого погружения, когда уже можешь что0то писать на Haskell. Акцент именно на то, чтобы научить понимать, как это работает, и правильно (“функционально”) думать.
К слову о монадах. Когда-то я про них уже писал, упоминая одну классную статью. Вот ещё одна отличная статья, на жтот раз заходящая со стороны теории категорий: Knowing Monads Through The Category Theory. Наверное, это лучшее, что я видел про категории. Есть ещё знаменитая книга Category Theory for Programmers, но очень уж она заумная, я осилил только на половину.
Вообще, Haskell оставляет неоднозначное впечатление. Некоторые концепции очень хороши, в типизацию просто влюбляешься, но вот в некоторых случаях сайд-эффекты делают жизнь гораздо проще, прям очень сильно проще: логирование, конфиги, взаимодействие с базами данных. И всё-таки, именно за чисто функциональными языками я вижу будущее. Текст — не самая эффективная визуальная репрезентация, можно сделать чтение кода эффективнее с помощью разноцветных графов, разных линий между ними, обозначений. И только чисто функциональный язык может быть без боли эффективно представлен в виде такого flow и перехода состояний. Однако, единственный visual programming language, из которого может выйти толк — Luna, и он сейчас как-то очень плохо развивается.