> Принято говорить, что, в целом, язык ленивый, а вся неленивость/энергичность (eagerness) находится (так и хочется сказать, заточЕна) внутри монад. Но дело в том, что любая Haskell-программа находится внутри монады IO. В итоге оказывается, что ленивыми в Haskell являются только чистые функции, а все вычисления (в понимании программистском), которых, на самом деле, большая часть — все равно остаются энергичными.
запредельная каша в голове, увы :(
я ж не обижаюсь, правда. здесь действительно написана каша.
при том что центральный тезис статьи (про то что монада — это стратегия вычисления) в общем верный.
> То, что в других языках представляет из себя единую ткань вычислений, в рамках Haskell разделено на 2 класса: чистые (обычные функции) и «грязные» (монады).
это не так
> Это приводит к разделению (дублированию) синтаксиса
это не так. синтаксический сахар do здесь нерелевантен — некоторый монадический код легче пишется без него.
> На практике же введение дополнительных правил приводит к тому, что появляется определенный предел выразительности языка и близости его к предметной области.
> концепция монады, монадного трансформера и т.д. неимоверно далеки от любой предметной области, которая встречается при программировании, а абстрагировать их средствами Haskell не удастся.
удивительные высказывания! просто удивительные. особенно поражает изобилие примеров, демонстрирующих ход мысли, ага.
> Более того, само понятие вычисления, которое в других языках остается имплицитным, в Haskell'е достается на поверхность. Именно с этим, по-моему, связанны частые претензии к преувеличенной сложности Haskell программ.
угу. давайте оставим вычисление имплицитным, и будем искать race conditions и deadlocks до посинения.
> (вот, в С не было стратегии вычисления Exception, а в С++ появилась :)
> Практического смысла в Haskell пока почти нет никакого.
угу. лет через пятнадцать в очередном дистрибутиве PHP всё это появится, и Вы начнете этим пользоваться да нахваливать. Лямбду вам уже подогнали, не прошло и 30 лет.
по-моему, мотивационная часть статьи находится в точности в её начале:
Однако, мне кажется, что важно было бы озвучить, что всё то, что сейчас скрывается под именем «монада» — само по себе достаточно спутанно в плане педагогики и евангелизма. [...]
Монады в настоящий момент являются миру как сложный ком из исторически обусловленных причин, проблем, решений, технических возможностей и теоретических основ (как алгебраических, так и аспектов теории вычислений).
Все эти наслоения можно (и нужно) расщепить
так я не понимаю Вашей когнитивной стратегии — Вы по всем изучаемым вопросам ждёте, чтобы изложение было «структурированным, логически связным, наконец «филологически целостным». »?
Вы понимаете, что при этом обрекаете себя на вечное нахождение в арьергарде?
я, к сожалению, забыл предупредить, видимо, что этот текст написан для уровня (наверное) Upper-Intermediate (но по стандартам, здесь сложившимся — Ultra-High Advanced).
Если Вам дать книгу «Физика полупроводников», Вы же не станете говорить «книга написана непонятно! Что это за зоны Бриллюэна?! Что это за неопределенность Гейзенберга?!!! Устраните неопределенность, а потом учите!», не правда ли?
Да, этот текст предполагает достаточно существенное знакомство с проблематикой и вообще желание в ней самостоятельно разобраться.
Clean — это язык программирования, почитайте про него. Значение аббревиатуры ЕМНИП можно найти на sokr.ru. Чтобы узнать, что такое экосистема языка, надо попрограммировать на нём с годик. Проблемы с вводом-выводом — обычные для чистых строгих ленивых функциональных языков: почитайте, что это такое — ничего плохого от этого не случится, а случится только хорошее :)
Вполне возможно, что Вам просто никогда не понадобится ничего из того, что здесь упоминается. Это нормально. Я протестую только против подхода, что любой текст должен быть немедленно понятен.
я с сожалением констатирую, что похоже, многие на Хабре привыкли находиться в положении птенцов с широко раскрытыми клювиками, в который заботливые родители вкладывают небольшие полупережеванные кусочки пищи.
Вы действительно постоянно ощущаете себя в общеобразовательной школе, со всеми сопутствующими обстоятельствами?
Я нигде не говорил, что это такой специальный туториал, начинающийся со слов «Здравствуй, малыш! Ты, наверное, замечал, что в последнее время твой компилятор стал часто ругаться особенно страшными и длинными словами! Давай-ка вместе споём песенку про грибок, а потом попробуем разобраться, что же это за такая штука-то — continuation passing style!» :)
мне остаётся лишь надеяться, что здесь ещё можно встретить людей, готовых самостоятельно жарить себе мясо и запивать его превосходным вином.
одни люди ездят в Турцию по системе All Included, другие — штурмуют восьмитысячники.
действительно, после прочтения неприукрашенного отчета о штурме пятитысячника первые в очередной раз укрепятся в мысли, что их выбор совершенно безопасен и неутомителен.
> А если серьёзно — при пользовании любой системы максимальные плюсы и простоту
> использования получаешь, вставая на точку зрения её проектировщиков, и действуя в
> рамках предлагаемой ими логической модели.
этот тезис верен только при одном дополнительном условии: «нельзя изучать альтернативы»
слава богу, в 2008 году это не так
и изучив альтернативы, мы чётко понимаем, что отсутствие выделенных понятий ветки и тэга — это проблема в Subversion
изнутри конечно оно может и не казаться проблемой
«у нас так спокон веку делают»
но при этом теряется возможность осознать, какой handicap ты на себя (возможно) навесил