раздел 31

Janet на практике

Janet, крошечный лисп, который весит мегабайт и зависит только от libc. Сначала база: REPL, литералы, изменяемые и неизменяемые близнецы коллекций, чтение скобок как дерева вызовов. Дальше модель исполнения: парсер отдаёт данные, компилятор превращает их в байткод, окружения держат определения, образы замораживают состояние процесса. На этом фундаменте вырастают макросы и гигиена, PEG-грамматики вместо регулярок, файберы как единый примитив для генераторов, ошибок и событийного цикла. Финал прикладной: модули и jpm, прототипы и полиморфизм, FFI и нативные модули, встраивание интерпретатора в программу на C, тесты, скриптинг и сквозной CLI-проект. Отдельным блоком алгопрактика: классические структуры данных из четырёх кирпичей и задачи с собеседований в двух стилях, императивном и функциональном. Язык, который целиком помещается в голову.

30 уроков30 тем · 12 кластеров

Начать раздел

Раздел открыт для всех. Войди, чтобы отмечать пройденные уроки, вести заметки и решать задачи в редакторе. войти

Уроки раздела

  1. Зачем Janet, лисп на один мегабайтJ~30 мин
  2. Установка и REPL: разговор вместо чтенияJ~25 мин
  3. Литералы и коллекции: всё парамиJ~30 мин
  4. Определения, функции и чтение скобокJ~30 мин
  5. Значения и ссылки: почему (= @[1] @[1]) это falseJ~30 мин
  6. Код как данные: парсер, quote и квазицитатаM~25 мин
  7. Окружения, байткод и образыM~30 мин
  8. Макросы: функция вычисляет, макрос нетM~25 мин
  9. Гигиена макросов и три ловушкиMS~30 мин
  10. PEG: грамматики вместо регулярокM~30 мин
  11. Захваты, именованные правила и парсер конфигаMS~30 мин
  12. Файберы: один примитив вместо трёх подсистемMS~25 мин
  13. Событийный цикл, каналы и таймаутыMS~30 мин
  14. Ветвления и matchJ~30 мин
  15. Универсальный loop и нелокальные переходыM~30 мин
  16. Модули: файл, таблица, окружениеM~35 мин
  17. jpm, project.janet и публикацияM~25 мин
  18. Прототипы, методы и полиморфизмMS~35 мин
  19. Ксенофункции: FFI и нативные модулиS~40 мин
  20. Встраивание Janet в программу на CS~40 мин
  21. Тестирование и отладкаM~35 мин
  22. Скриптинг вместо bashM~40 мин
  23. Макро-шалости: генерация API и условная компиляцияS~30 мин
  24. Сквозной проект: утилита статистики по логамMS~45 мин
  25. Карта стандартной библиотекиJ~25 мин
  26. Структуры данных: строим из четырёх кирпичейM~35 мин
  27. Алгозадачи 1: один проход и хеш-таблицаM~30 мин
  28. Алгозадачи 2: указатели, окна и префиксыMS~30 мин
  29. Алгозадачи 3: графы, кучи и динамикаS~35 мин
  30. Экосистема и что дальшеJ~25 мин

Темы и кластеры

Старт

Модель данных

Модель исполнения

Макросы

PEG

Файберы

Поток выполнения

Модули

Полиморфизм

C и встраивание

Практика

Алгопрактика