metaclass: (Default)
metaclass ([personal profile] metaclass) wrote2010-03-04 07:15 pm

F#

Сижу пишу кодогенератор на F# чтобы сконвертировать старую БД с самодельным адово-израилевым ОО движком в PostgreSQL. Вообще задача там сконвертировать описание типов из xml в несколько исходников на SQL и дельфи и прикрутить их в прогу-конвертор.

F# производит впечатление, как бы это выразится, несколько эклектичного языка. Боб с горохом, окамл, дотнет и призрак Барбары Лисков, вбивающей гвозди в головы тем, кто плохо продумывает наследование. Функции, которые одновременно используются и в каррированной и обычной форме, причем сразу не поймешь, когда как, монады(ака sequence) вкрученные в язык, несколько операторов связывания для них, императивный стиль, мутабельные переменные, передача параметров по ссылкам и наследование вперемежку с иммутабельностью и ленивыми вычислениями.

Документация в интернетах бессвязная как ад. Без книжки некоторые вещи фиг найдешь, типа как объявить взаимно-рекурсивные типы.

Синтаксис хаскеля намного гуманнее, не так загажен лишними ключевыми словами и символами.

Цель вообще использования F# а не хаскеля в данном случае - это проверка, можно ли F# пользоваться не сломав себе мозг. Хаскель просто не интегрируешь в дотнет, а это уже интегрировано.

Лишние символы

[identity profile] potan.livejournal.com 2010-03-05 09:11 am (UTC)(link)
Я пару раз сталкивался, что люди жалуются на нехватку запятых в Haskell, OCaml и Scheme. И в пример ставят Erlang и Java.

Re: Лишние символы

[identity profile] metaclass.livejournal.com 2010-03-05 10:31 am (UTC)(link)
Я только за. Но когда но то каррированное, то нет, причем я пока не соображу где как - у меня в голове путается. В хаскеле понятнее.