LISP - Macro

Le macro consentono di estendere la sintassi del LISP standard.

Tecnicamente, una macro è una funzione che accetta un'espressione s come argomenti e restituisce un modulo LISP, che viene quindi valutato.

Definizione di una macro

In LISP, una macro denominata viene definita utilizzando un'altra macro denominata defmacro. La sintassi per la definizione di una macro è:

(defmacro macro-name (parameter-list))
"Optional documentation string."
body-form

La definizione della macro consiste nel nome della macro, un elenco di parametri, una stringa di documentazione opzionale e un corpo di espressioni Lisp che definisce il lavoro che deve essere eseguito dalla macro.

Esempio

Scriviamo una semplice macro chiamata setTo10, che prenderà un numero e ne imposterà il valore a 10.

Crea un nuovo file di codice sorgente denominato main.lisp e digita il codice seguente.

(defmacro setTo10(num)
(setq num 10)(print num))
(setq x 25)
(print x)
(setTo10 x)

Quando fai clic sul pulsante Esegui o digiti Ctrl + E, LISP lo esegue immediatamente e il risultato restituito è -

25
10