Symboles

Les symboles sont uniques en Common Lisp. Superficiellement, un symbole ressemble à une chaîne de caractères, mais il y a des différences profondes entre ces deux notions. Si deux noms de symboles identiques figurent dans un programme, alors Common Lisp garantit que c'est le même symbole, ce qui a pour conséquence que le test d'égalité sur les symboles peut se faire avec une simple comparaison de pointeur (très rapide).

Avec la liste de propriétés d'un symbole, on peut construire une simple base de données interactive avec très peu d'efforts.

Les symboles sont utilisés en Common Lisp comme identificateurs. Autrement dit, les variables et les noms de fonctions en Common Lisp sont de première classe, i.e. manipulables sous la forme de données. À partir du nom d'une variable, on peut donc récupérer ou changer sa valeur. À partir du nom d'une fonction, on peut exécuter ou modifier la fonction. Ceci est extrêmement important pour l'environnement de programmation. Les outils de traçage, par exemple, modifient la fonction en l'entourant de quelques instructions qui affichent la valeur des arguments et la valeur de retour.

L´écriture de macros nécessite la possibilité de créer des symboles uniques. Ces symboles servent de variables dans le code généré par la macro. Les macros transforment des programmes Common Lisp en d'autres programmes Common Lisp. Il faut donc pouvoir représenter les programmes sous forme de données. Les constantes sont représentées par elles-mêmes, les expressions composées, par des listes et les variables par des symboles.

Irene DURAND
2011-10-14