Макрос
Материал из Xgu.ru
Макрос (синтактический макрос, syntactic macro) — элемент языка, позволяющий расширять синтаксис языка, вводя в него новые синтактические конструкции. Работает на уровне абстрактного синтактического дерева (AST).
Являются неотъемлемой частью языка в языках семества Lisp: Common Lisp, Scheme и Clojure/ClojureScript. В этих языках макросы очень мощны и выразительны, благодаря гомоиконичности языков, свойству при котором данные и код выглядят похоже или даже одинаково.
Во многих других языках есть решения, делающее макросы возможным, хотя они и не вписаны полностью в язык, как в Lisp'ах. Примеры:
- macropy — макросы в Python
- sweet.js (англ.) — макросы в JavaScript