Макрос

Материал из Xgu.ru

Перейти к: навигация, поиск

Макрос (синтактический макрос, syntactic macro) — элемент языка, позволяющий расширять синтаксис языка, вводя в него новые синтактические конструкции. Работает на уровне абстрактного синтактического дерева (AST).

Являются неотъемлемой частью языка в языках семества Lisp: Common Lisp, Scheme и Clojure/ClojureScript. В этих языках макросы очень мощны и выразительны, благодаря гомоиконичности языков, свойству при котором данные и код выглядят похоже или даже одинаково.

Во многих других языках есть решения, делающее макросы возможным, хотя они и не вписаны полностью в язык, как в Lisp'ах. Примеры: