Предварительная трансляция макро в HomeLisp
Как хорошо известно, макро в Лиспе — это особая функция, которая вычисляется в два этапа: на первом этапе происходит генерация некоей промежуточной формы, а на втором этапе эта форма выполняется в текущем контексте.
Важно отметить, что на первом этапе ядро Лиспа не вычисляет значения аргументов вызова.
Использование макро в гомоиконном Лиспе позволяет добавлять в Лисп новые «операторы» (именно поэтому знаменитый лиспер Пол Грэм назвал Лисп программируемым языком программирования).
Однако, у медали имеется и обратная сторона: если код содержит большое количество макро, то при интерпретации Лиспа будет тратиться значительное время на макрогенерацию.



















