LISP - Macros

Les macros vous permettent d'étendre la syntaxe du LISP standard.

Techniquement, une macro est une fonction qui prend une expression s comme arguments et renvoie une forme LISP, qui est ensuite évaluée.

Définition d'une macro

Dans LISP, une macro nommée est définie à l'aide d'une autre macro nommée defmacro. La syntaxe pour définir une macro est -

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

La définition de macro se compose du nom de la macro, d'une liste de paramètres, d'une chaîne de documentation facultative et d'un corps d'expressions Lisp qui définit le travail à effectuer par la macro.

Exemple

Écrivons une simple macro nommée setTo10, qui prendra un nombre et définira sa valeur sur 10.

Créez un nouveau fichier de code source nommé main.lisp et tapez le code suivant dedans.

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

Lorsque vous cliquez sur le bouton Exécuter ou tapez Ctrl + E, LISP l'exécute immédiatement et le résultat renvoyé est -

25
10