|
Lisp at
|
5.3. Extension du langage
| ||||||||
|
5.3. Extension du langagePour écrire la fonction STRUCTURE-MENU, il est nécessaire d'accéder aux noms des champs de la structure; il n'existe pas de langage qui fournisse une primitive permettant d'accéder aux noms des champs d'une instance. Cependant, en Lisp cela se réalise aisément, grâce au caractère auto-programmable du Lisp. On peut définir une macro, EXTENDED-DEFSTRUCT, qui aura deux rôles, celui de définir la structure et celui de rendre accessibles les noms des champs de la structure; la définition de la structure PERSON, s'écrira alors comme ceci :
L'évaluation de la forme ci-dessus (l'application de la macro EXTENDED-DEFSTRUCT aux arguments PERSON NAME ...) a pour conséquence la définition de la structure comme précédemment et l'accès possible aux noms des champs comme ceci :
EXTENDED-DEFSTRUCT est défini comme une macro à l'aide de l'opérateur DEFMACRO; pour les lecteurs intéressés, voici cette macro :
Commentaires
| ||||||||
|
|||||||||
|
Last update : 04/12/2001 | ||||||||