Редкие языки: OCaml

Haskell, но попроще.
1 минута15189

Здравствуйте!

INRIA, национальный исследовательский институт Франции, в 1985 году выпустил свой диалект языка ML, и назвал его OCaml. Если ML изначально был математическим языком, созданным для автоматического доказательства теорем, то OCaml был сразу создан как прикладной язык программирования.

Давайте разберемся, для чего он может быть полезен.

Предназначение

OCaml имеет в своем арсенале средства для написания безопасных программ, ошибки в которых можно выявить еще на этапе написания кода. Для этого язык имеет статическую типизацию, автоматическое выведение типов и средства для формальной верификации кода.

Кроме того, у OCaml очень достойный оптимизирующий компилятор, и по производительности код на OCaml не уступает коду, написанному на C, при меньшем количестве способов выстрелить себе в ногу.

В OCaml есть все то, к чему мы привыкли в функциональных языках: сопоставление с образцом, функции первого класса, параметрический полиморфизм и иммутабельность.

Синтаксис

С непривычки синтаксис может показаться не совсем ясным, но он намного проще академических функциональных языков вроде Haskell.

Переменные

let v = 1;;

Переменные по умолчанию иммутабельны, однако могут затенять друг друга в разных областях видимости. Компилятор не выдает предупреждение об этом, так что разработчику приходится самому следить за тем, что он пишет.

Функции

(fun x -> x + 1);;

- : int -> int = <fun>

Первая строка — определение функции, а вторая — автоматическое выведение типов. В этом примере мы объявили анонимную функцию, но ее можно сделать именованной при помощи let, присваивая переменной объект функции.

Больше о синтаксисе можно узнать из книги «Real World OCaml».

Использование

На OCaml написан рендеринг формул в Википедии, файлобменный клиент MLDonkey и еще некоторые известные продукты. Вот список побольше: www.ocaml.org/learn/success.html.

Стоит ли заняться OCaml в надежде на успешную карьеру и большую зарплату? Я думаю, что нет. OCaml — не тот язык, за специалистами которого в очередь выстраиваются крупные корпорации. Но посмотреть на него внимательнее определенно стоит.

ocamlязыки программированияweb_developer
Нашли ошибку в тексте? Напишите нам.
Спасибо,
что читаете наш блог!