Lisp: Le macro


Le macro sono degli strumenti potentissimi, presenti in quasi tutti i dialetti lisp e non solo, che permettono di estendere le funzionalità di un compilatore.

In lisp vengono usate per estendere la sintassi e la semantica del linguaggio, implementare nuove funzionalità del compilatore o astrarre pattern ricorrenti di programmazione.

Dovete pensare alle macro come a delle funzioni che invece di essere eseguite durante il runtime di un programma, vengono eseguite in fase di compilazione o di lettura del codice.
Funzioni che invece di ritornare valori, ritornano liste di codice che veranno ricompilate.

Se volete approfondire l’argomento vi consiglio dei bei articoli su stacktrace sulle macro in common lisp:

http://stacktrace.it/2008/06/common-lisp-macros-parte-1/

http://stacktrace.it/2008/07/common-lisp-macros-parte-2/

http://stacktrace.it/2009/02/common-lisp-macro3/