next up previous contents index
Next: Autres utilisations des symboles Up: Symboles Previous: Variables lexicales et spéciales   Contents   Index


mots-clés

Un symbole dont le nom commence par `:' est un mot-clé (en Anglais : keyword). Techniquement, le caractère `:' ne fait pas partie du nom, mais indique le paquetage (en Anglais : package) dans lequel est contenu le symbole.

Pour tester si un symbole est un mot-clé, utiliser le prédicat keywordp :

* (keywordp ':bonjour)

T
* (keywordp 'bonjour)

NIL
*

Les mots-clés sont particuliers pour plusieurs raisons. D'abord, la valeur d'un mot-clé est ce même mot-clé :

* :ab

:AB
* :lskdfjlskdjflskdjf

:LSKDFJLSKDJFLSKDJF
*

Les mots-clés permettent de nommer des paramètres d'une fonction. C'est leur utilisation principale. Certaines fonctions ont besoin d'un grand nombre de paramètres, dont la majorité ne change pas d'une invocation à l'autre. Un exemple typique est une fonction de création d'une fenêtre dans un système de fenêtrage comme X11. Les paramètres d'une telle fonction déterminent la position et les dimensions de la fenêtre, la couleur du fond, la profondeur, la fenêtre mère, le masque d'événements, etc.

Dans un langage de programmation sans paramètres nommés, un appel de ce type de fonction est difficile à lire et comprendre, car il faut se souvenir de la signification de chaque paramètre, puis vérifier la position de chacun. Les paramètres nommés permettent de simplifier considérablement ce type d'appel. Exemple (de la bibliothèque CLX pour le système X11) :

(create-window :parent root
               :x 10 :y 20
               :width 200 :height 300)

Ici un mot-clé est utilisé pour nommer l'argument qui suit. L'ordre n'a pas d'importance. L'appel suivant est donc identique au précédent :

(create-window :y 20 :x 10
               :width 200 :height 300
               :parent root)


next up previous contents index
Next: Autres utilisations des symboles Up: Symboles Previous: Variables lexicales et spéciales   Contents   Index
Robert STRANDH
2001-09-28