Когда я ещё только начинал писать код и делал это из рук вон плохо (сейчас всё же лучше, чем тогда), то мне хотелось изучить что-то хардкорное, и в моих глазах таким хардкором был Haskell.
Прошло время, я осознал, что Haskell — это не высшая точка познания, а просто хороший инструмент, реализующий свою концепцию. Концепция эта красивая, и программирование на Haskell сродни искусству, когда программист смакует каждый участок кода.
Кстати, немного истории. Haskell появился в 1990 году — его собрал целый комитет учёных, которым надоело, что у каждого ленивого функционального языка свой диалект, и они решили договориться об одном общем стандарте. Назвали язык в честь американского логика Хаскелла Карри, чьи работы по комбинаторной логике как раз и легли в основу всего этого добра. Так и вышел ленивый, чистый и строго типизированный язык, который позже устаканился в стандартах Haskell 98 и Haskell 2010.
Потом появились нейросети, и с точки зрения карьеры учить Haskell вообще стало бессмысленно, ведь одна строчка красивого кода в глазах работодателя вряд ли заменит тысячу рабочего, да и вакансий на Haskell в общем-то нет. Но опять же, только лопухи пишут код за деньги, а нормальные пацаны делают это для удовольствия. Это я перефразировал фразу классика.
В чём фишка Haskell? Конечно, в его функциональном подходе. А зачем он нужен? Да, в общем-то незачем, кроме эстетического удовольствия. Получается, что это язык не для того, чтобы добиться успеха, а для того, чтобы писать одну функцию полдня и наслаждаться этим.
Разумеется, замусорить код на «чистом» языке можно. Haskell, конечно, бьёт по рукам сильнее, чем другой язык, но я справился и с этой задачей. То есть нет ничего невозможного, и на Haskell можно писать императивно. Можно, а зачем? Он же не для этого.
Тут вы вправе спросить: а при чём тут вообще Haskell, разговор-то вроде про λ-исчисление? А притом, что λ-исчисление — это тот самый фундамент, на котором Haskell и стоит, и без него понять язык по-настоящему глубоко попросту не выйдет. А раз без мучений не бывает приятных моментов, я и погрузился в λ-исчисление. На моё понимание его и Haskell оказали решающее влияние лекции Дениса Николаевича Москвина, которые можете найти где угодно, рекомендую посмотреть.
Материал распространяется на условиях лицензии Creative Commons «Attribution-ShareAlike» 4.0 International (CC BY-SA 4.0): вы можете свободно распространять, адаптировать и использовать материал в любых целях, в том числе коммерческих, при условии указания авторства и сохранения той же лицензии для производных произведений.