[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Top] [Table des matières] [Index] [ ? ]

1.3.2 nil and t

En Lisp, le symbole nil a trois significations distinctes: il est un symbole nommé ‘nil’ ; c'est la vraie valeur logique false ; et c'est la liste vide—la liste de zéro élément. Une fois utilisé comme variable, nil a toujours la valeur nil.

En ce qui concerne le lecteur Lisp, ‘()’ et ‘nil’ sont identiques : ils représentent le même objet, le symbole nil. Les différentes manières d'écrire le symbole sont prévues entièrement pour les lecteurs humains. Après que le lecteur Lisp ait lu l'un ou l'autre, ‘()’ ou ‘nil’, il n'y a aucune manière de déterminer quelle représentation a été écrite réellement par le programmeur.

Dans ce manuel, nous écrivons () quand nous souhaitons souligner qu'il signifie la liste vide, et nous écrivons nil quand nous souhaitons souligner qu'il signifie la vraie valeur false. C'est une bonne convention à employer dans des programmes de Lisp également.

 
(cons 'foo ())                ; Emphasize the empty list
(setq foo-flag nil)           ; Emphasize the truth value false

Dans les contextes où une vraie valeur est prévue, n'importe quelle valeur non-nil est considérée comme true. Cependant, t est la manière préférée de représenter la vraie valeur true. Quand vous devez choisir une valeur qui représente true, et que vous n'avez aucun autre choix, employer t. Le symbole t a toujours la valeur t.

En Emacs Lisp, nil et t sont des symboles spéciaux qui s'évaluent toujours eux-mêmes. De sorte que vous n'avez pas besoin de les citer pour les employer comme constantes dans un programme. Une tentative de changer leurs valeurs a comme conséquence une erreur setting-constant. Voir la section Variables that Never Change.

Function: booleanp object

Retourne non-nil si objet est une des deux valeurs booléennes canoniques : t ou nil.


[ < ] [ > ]   [ << ] [Plus haut] [ >> ]         [Top] [Table des matières] [Index] [ ? ]

Ce document a été généré par Eric Reinbold le 13 Octobre 2007 en utilisant texi2html 1.78.