Entry tags:
Эпический ад
Написал таки кусок кодогенератора на F#. Сначала в лоб, просто конверсией моих типов в последовательность строк SQL запроса для создания таблиц, а потом мне резко разонравилось отсутствие разделения модели и представления и я прикрутил AST для SQL, заодно заменив выходной результат на string seq, то бишь IEnumerable<string>.
Завтра буду прикручивать AST для дельфей, если мне не откозлопитонируют мозг какой-нибудь срочно-капец-нужно-вчера хреновиной.
Теперь понимаю, чего
zabivator устроил хаскель-срач - когда над головой не висит чистота и ленивость, но есть discriminated unions, вывод типов и это дело корректно интегрировано в привычную среду, можно особо не задумываясь писать всякий мрак.
Но при этом однозначно начинать надо с хаскеля, а для F# - еще и дотнет знать, потому что иначе этот безумный бред понять затруднительно. Хаскель лаконичен, там те же самые идеи не заслоняются синтаксисом.
Завтра буду прикручивать AST для дельфей, если мне не откозлопитонируют мозг какой-нибудь срочно-капец-нужно-вчера хреновиной.
Теперь понимаю, чего
![[livejournal.com profile]](https://www.dreamwidth.org/img/external/lj-userinfo.gif)
Но при этом однозначно начинать надо с хаскеля, а для F# - еще и дотнет знать, потому что иначе этот безумный бред понять затруднительно. Хаскель лаконичен, там те же самые идеи не заслоняются синтаксисом.
no subject
Т.е мне наоборот, хаскелл кажется в плане синтаксиса гораздо более развесистым -- там больше всего, в т.ч. разных вещей, что бы сделать одно и то же. let и where блоки, например, когда в ML только let. Или там do и стрелочная нотация. Или разделения ; и отступами. Т.е. напихано в язык прямо всего что бывает.
А ML --- некий голый базис функциональных языков. Как ФЯ не придумывай, ML получается.
no subject
Менее ограниченный, чем в *ML. У него более мощная система типов, которая не всегда справляется с выводом (хотя справляется с более широким классом проблем, чем выводилка в том же OCaml), и поэтому [иногда!] требует подсказки.
А ML --- некий голый базис функциональных языков. Как ФЯ не придумывай, ML получается.
SML, да ;) А то в камле тоже много всего напихано, те же streams, ocamlp4, etc.
no subject
В окамл понапихали, да. Сделали перл.
no subject
Так что если привык к окамлу и не используешь более мощных конструкций, в своём коде типы в хаскеле можно не писать, а в чужих исходниках типы-подсказки удобны.
no subject
no subject
no subject
no subject
Те же streams к языку вообще не имеют никакого отношения, это просто внешняя либа. Тот же camlp4 в принципе это просто отдельный препроцессор, и с языком жёстко не связан (что можно наглядно наблюдать на примере camlp5).
Странно вообще, то жалуются что stdlib у камля бедный, то сильно богатый :)
no subject
И в нем и в окамле вроде тоже вообще две варианта синтаксиса.
Типы в хаскеле указываются сильно гуманнее, чем в F# и далеко не всегда нужны.
no subject
У меня, кстати, обычно получается нечто среднее между Хаскелем и Агдой. ;)