Как вы уже могли догадаться, я снова взялся за изучение Haskell. Очевидно, этот язык нельзя учить наскоком. Я решил запастись терпением и вникать во все медленно, но верно. Например, недавно я разбирался с многопоточностью.
В последнее время я несколько раз упоминал о том, что не совсем понимаю, как на Haskell можно разрабатывать настоящие, большие проекты. Тому было несколько причин, но главным образом меня беспокоило (заметьте, в прошедшем времени), что Haskell активно использует ленивые вычисления. Тут имеет место серьезная проблема, о которой обычно умалчивают евангелисты и которую плохо осознаешь в начале изучения этого языка.
Предлагаю вашему вниманию перевод еще одной главы из замечательной книги «Developing Web Applications with Haskell and Yesod». Эта глава, как и большинство других, будет интересна даже тем, кто не хочет ничего знать об этом нашем Yesod и вообще когда-либо писать на Haskell. Правда-правда! Если же вы пропустили переводы других глав или совсем не понимаете, о чем идет речь, попробуйте начать чтение с этого поста.
Что ни говори, а отладочный вывод был и остается одним из самых простых и часто используемых способов отладки. Но как прикажите использовать его в Haskell при написании чистых функций? Временно оборачивать функцию в монаду IO, а по завершении отладки возвращать код к прежнему состоянию? Разумеется, нет!
Недавно на Хабре появилась любопытная заметка Как два программиста хлеб пекли. В ней автор противопоставляет подход «сделай все с кучей классов и паттернами проектирования» подходу «сделай как можно проще (KISS)». А вот интересно, что будет, если попытаться решить описанную в статье задачу с помощью функционального подхода?
Будет преувеличением сказать, что работы над переводом книги о веб-фреймворке Yesod близятся к завершению, однако большая часть пути уже определенно пройдена. В настоящее время не переведено несколько глав, а те, что переведены, еще предстоит перепроверить. Сегодня я хотел бы представить на ваш суд черновой вариант перевода 27-ой главы «xml-conduit», перевод которой не без пинков со стороны Darkus’а я закончил на днях.
Признайтесь, вы было решили, что работы над русским переводом прекрасного фолианта «Developing Web Applications with Haskell and Yesod» внезапно остановились? А вот как бы не так! Сегодня мне хотелось бы представить на ваш суд черновой вариант перевода 21-ой главы, посвященной реализации поиска по сайту с помощью Sphinx.
А тем временем работы над русским переводом книги «Developing Web Applications with Haskell and Yesod» идут с бешеной скоростью. В этой заметке я предлагаю вашему вниманию черновой вариант перевода шестнадцатой главы книги, посвященной интернационализации. Есть подозрения, что эта глава заинтересует вас даже в том случае, если в обозримом будущем вы не собираетесь использовать ни Haskell, ни Yesod.
Позвольте громогласно объявить о том, что недавно небольшая группа энтузиастов, среди которых есть и я, начала работу над русским переводом книги Developing Web Applications with Haskell and Yesod. В сей заметке я хотел бы представить вашему вниманию черновой вариант перевода первой главы этой книги. Из нее вы узнаете, что это за Yesod такой и чем он может быть полезен. Кстати, мы будем рады всем желающим присоединиться к проекту!
Сегодня совместными усилиями мы с вами создадим простенький скриптовый язык программирования. В нем не будет массивов или условных операторов, зато будут целочисленные переменные и множество операций над ними. Писать, как вы уже поняли, будем на замечательном языке Haskell. Также мы познакомимся с «компиляторами компиляторов» Alex и Happy.