Александр Гранин
@graninas
Автор книг об архитектуре и дизайне ПО в ФП
Information
- Rating
- Does not participate
- Location
- Новосибирск, Новосибирская обл., Россия
- Date of birth
- Registered
- Activity
Автор книг об архитектуре и дизайне ПО в ФП
Information
Монументальный труд, спасибо!
Давать друзьям — это нормально, я не против. Я вам больше скажу, она и на торрентах уже тоже есть, и я не собираюсь как-либо это ограничивать. На книгах все равно не заработать, так что пусть люди читают хотя бы так.
Но на Хабр уже почти нет смысла писать. Я, например, пишу сразу на английском, потому что основная аудитория там. Я даже книгу написал про «building real world applications in Haskell»: Functional Design and Architecture. Причем подходы из книги я применил на практике аж несколько раз и с большим успехом. Так что мы про все это пишем, просто не на Хабр.
На Хаскеле можно (и нужно) писать, не вдаваясь в ТК вообще, и не пытаясь понять «что такое монада». Этот вопрос — математический, и в контексте Хаскеля не особо помогает. Помогает практика использования монад и какая-никакая, а программистская интуиция, нарабатываемая примерами. Пусть даже некорректная, но достаточная, чтобы писать код на Хаскеле.
Новички, не ведитесь, ТК — это не про Хаскель, это про математику, как бы хаскеллисты ни пытались это представить.
Рекомендую посмотреть доклад Виталия Брагилевского «The clear path to Haskell complexities», там популярно объясняется, что проблемы с изучением Хаскеля — в неверных подходах к обучению.
А из зада, как из ада,
Появляется монада!
Я совсем тому не рад,-
Было лучше без монад!
Я Хаскель выучить хотел,
Когда хотел учить я Хаскель.
Но я в рекурсию влетел,
И сочинил про bottom пасквиль.
И пирожки про Вадлера, "Лямбдамена":
Я без шуток о монадах
К Вадлеру не подхожу.
Вадлер хмурый, ему надо
Поучиться куражу.
Вот веселье-то, взаправду,-
В баинд лямбду запихнуть.
Функтор мапнуть о монаду
И на типы натянуть.
Вадлер хмур, но инстанс Funny
Мы ему определим,
И предложим выход ранний
На почетный селявим.
Мы без Вадлера не жили б,
Он открыл нам путь в миры.
Без него бы мы кружили
В клетке чистой из pure'ы.
www.patreon.com/functional_design_and_architecture
Монады там тоже есть.
Не бывает такого. Не оперируют этими словами во время проектирования. Оперируют обычными терминами: подсистема, интерфейс, имплементация. Потом думают, какие технологии можно применить: FRP, STM, монады. Может, достаточно функций и алгебраических типов данных. Никто из известных мне хаскеллистов в продакшне не проектирует на теории категорий.