LISP - Macros
As macros permitem estender a sintaxe do LISP padrão.
Tecnicamente, uma macro é uma função que recebe uma expressão s como argumentos e retorna um formulário LISP, que é então avaliado.
Definindo uma Macro
No LISP, uma macro nomeada é definida usando outra macro chamada defmacro. A sintaxe para definir uma macro é -
(defmacro macro-name (parameter-list))
"Optional documentation string."
body-form
A definição da macro consiste no nome da macro, uma lista de parâmetros, uma string de documentação opcional e um corpo de expressões Lisp que define o trabalho a ser executado pela macro.
Exemplo
Vamos escrever uma macro simples chamada setTo10, que pegará um número e definirá seu valor para 10.
Crie um novo arquivo de código-fonte denominado main.lisp e digite o seguinte código nele.
(defmacro setTo10(num)
(setq num 10)(print num))
(setq x 25)
(print x)
(setTo10 x)
Quando você clica no botão Executar, ou digita Ctrl + E, o LISP executa imediatamente e o resultado retornado é -
25
10