Hacker News Digest

22 августа 2026 г. в 14:08 • geometridae.bearblog.dev • ⭐ 206 • 💬 107

OriginalHN

#2htdp-image#drscheme#graphics#homoiconicity#lisp#macros#programming-language#racket#scheme

A Friendly Introduction to Racket

Язык программирования Racket — это современный потомок Lisp, родившийся в 1995 году как эволюция PLT Scheme. Он сочетает минималистичный синтаксис с мощной системой создания новых языков, что делает его идеальным для обучения и экспериментов. В отличие от «классического» Lisp, Racket предлагает гибкую архитектуру, где язык можно адаптировать под конкретную задачу — будь то анализ данных, генерация кода или визуализация.

Главная идея Racket — homoiconicity: код представлен как данные, что позволяет писать макросы и динамически модифицировать язык. Например, через (define-syntax-rule (while condition body ...) ...) можно добавить цикл while, которого нет в базовом синтаксисе. Это не просто текстовая замена, а полноценная языковая конструкция, генерируемая во время компиляции. Такие возможности делают Racket уникальным: вы не просто пишете программы, вы создаёте инструменты для их написания. Для понимания достаточно открыть DrRacket, ввести простой пример вроде (factorial 5) и увидеть результат — 120. Экспериментируйте с графикой через #lang racket и библиотекой 2htdp/image, чтобы увидеть, как код превращается в визуальные образы.