Инструментарий

Вот что нам потребуется:

  • Пакетный менеджер OPAM.

  • Язык OCaml и его диалект Reason.

  • Система сборки Dune.

  • Интерактивная оболочка utop для OCaml и rtop для Reason.

Быстрый старт

  1. Установить OPAM.

  2. Установить OCaml версии 5.1.0 через OPAM.

  3. Установить необходимые пакеты:

    opam pin add ocaml-lsp-server 1.15.1-5.0
    opam install dune utop reason rtop ocaml-lsp-server ocamlformat merlin odoc odig base core stdio menhir sedlex ppx_jane ppx_compose
  4. Желательно также установить Visual Studio Code и расширения OCaml Platform и Live Share.

Проверка установки

Распакуйте директорию hello из архива с тестовым примером.

Если в этой директории команда dune exec ./hello.exe выводит

((message hello) (receiver world))

то все настроено правильно.

Также если вы в VS Code открываете файл hello.re и при этом:

  • Есть подсветка синтаксиса.

  • Вы нажимаете Ctrl+Shift+P, выбираете «Format document» и никаких ошибок нет.

  • Вы наводите на определение типа type t и видите всплывающую подсказку.

То значит и текстовый редактор тоже настроен правильно.

OCaml

OCaml — функциональный язык программирования общего назначения.

Установка

Необходимо установить:

  1. Пакетный менеджер OPAM.

    Обратите внимание, что вы должны использовать команду eval $(opam env) для установки окружения OPAM. Как правило, эту команду обычно добавляют в профиль командной оболочки пользователя, например, в файлы .bashrc, .zshrc и прочие.

  2. OCaml версии 5.1.0 через OPAM.

  3. Интерактивную оболочку utop:

    opam install utop

Материалы

Язык

Reason

Reason — это альтернативный диалект языка OCaml.

Синтаксис OCaml свободно конвертируется в Reason и обратно. Для этого в состав OCaml входит консольная программа refmt и онлайн-утилита. Также можно воспользоваться расширением для браузеров Reason Tools.

Также существует аналог интерактивной оболочки utop для Reason, который называется rtop.

Установка

opam install reason rtop

Материалы

Dune

Dune — система сборки для OCaml.

Установка

opam install dune

Базовые команды

Сборка проекта

dune build

Получившиеся файлы можно найти в директории _build.

Автоматическая пересборка при изменениях
dune build --watch

Запуск исполняемого файла

Запустить исполняемый файл с публичным именем public-name:

dune exec public-name

Установка пакета

dune install

Автоформатирование кода

dune fmt

Запуск тестов

dune test

Использование REPL в контексте проекта

Запуск utop:

dune utop

Запуск rtop:

dune exec rtop
#use_output "dune top | sed 's/;;/;/'";

Материалы

Visual Studio Code

Для работы с проектами на OCaml и Reason рекомендуется использовать текстовый редактор Visual Studio Code с установленным расширением OCaml Platform.

Некоторые полезные возможности расширения:

  • Навигация по коду и отображение документации.

  • Отображение обнаруженных ошибок.

  • Отображение выведенных типов.

  • Форматирование кода.

Установка

Чтобы расширение работало, потребуется дополнительно установить следующие пакеты:

opam install ocaml-lsp-server ocamlformat merlin

Препроцессоры

Очень часто код на OCaml и Reason подвергают препроцессингу, чтобы расширить синтаксис новыми возможностями.

Примеры препроцессоров:

  • ppx_jane — по сути, коллекция из этих препроцессоров, каждый из которых можно отдельно загуглить.

  • ppx_compose — поддержка операторов композиции % и %>.

  • sedlex — используется для удобного описания лексеров прямо в коде программы, см. ниже.

Библиотеки

Общие

  • Base (API) и Core (API) — используются в качестве замены стандартной библиотеке.

Для домашних заданий

Справочники