← На главную

Бесплатный учебник OCaml работает в браузере — его написал Claude Code

13.06.2026 13:11 · hackernews

Учебник по OCaml, который реально работает прямо в браузере, — без установки, сервера и скачивания. Его автор, преподаватель из IIT Madras, замучился тратить часы на установку OCaml на ноутбуки студентов: Anil Madhavapeddy и Yaron Minsky в 2013 году чуть ли не всё занятие потратили на это. Сейчас стало лучше — есть opam 2.2.0 для Windows, Docker-контейнеры, но это всё равно костыли. Хотелось «ноль шагов до OCaml».

Решение — чисто клиентская веб-страница. Два уровня выполнения. Лёгкий — это x-ocaml, WebComponent от Arthur Wendling: OCaml 5.4, скомпилированный в JavaScript через js_of_ocaml. Внутри в Web Worker крутится Merlin: наводишь на greeting — видишь тип, автодополнение, подсветка ошибок и ocamlformat. Всё работает в табе, правки хранятся в local storage. Тяжёлый уровень — для тех случаев, когда toplevel не хватает (тесты, компиляция C, сборка ОС). В поздних модулях в браузере загружается полноценная 32-битная Alpine Linux на эмуляторе v86 (x86-to-wasm). Система не холодно загружается, а восстанавливается из сжатого снепшота, файловая система подтягивается лениво по 9p — ты скачиваешь только те куски, которые реально трогаешь. Внутри уже стоят OCaml 5.4, dune и gcc. Всё это весит примерно 12 МБ до интерактивной консоли.

Автор писал учебник с помощью LLM (главным образом Claude Code, модели Opus 4.7, Opus 4.8 и Fable 5). За 25 дней накопилось 11.26 миллиарда токенов (98% — чтение кэша, реально потрачено около 207 млн токенов, примерно $2800-3000). Но самое сложное было не написать текст, а заставить модель не выпрыгивать вперёд с концепциями, которые студент ещё не знает. Пришлось копить persistent memory с правилами вроде «нет форвард-концепций», «каждая идея мотивируется перед использованием», «упражнения не должны повторять примеры из главы».

Вся книга лежит в открытом репозитории. Она не может «бит-ротить»: каждый ```ocaml-блок компилируется и прогоняется dune runtest через ocaml-mdx при каждом изменении. Слайды, веб-страница и код генерируются из одного Markdown-файла с fenced divs. Есть проверки на переполнение слайда, битые ссылки и дублирующиеся упражнения. Студенты проходят инлайн-квизы с тестами, которые реально прогоняются в браузере, а анонимная статистика (без IP и личных данных) помогает автору понять, где люди реально застревают.

Двенадцать модулей: восемь по функциональному программированию (типы, рекурсия, ADT, pattern matching, функции высшего порядка, модули и функторы, эффекты) и четыре по реальным системам — тестирование (OUnit2, QCheck, model-based), безопасность памяти (с запуском реального C в VM, где видно buffer overflow), OxCaml (линейность, уникальность, data-race freedom) и MirageOS (unikernel из OCaml). Для последнего модуля автор мечтает запускать скомпилированный unikernel напрямую через WASI, без Linux-хоста.

Курс бесплатный, открыт для записи на NPTEL до 27 июля 2026.

Читать оригинал →