, , ,

==?

Le prédicat ==? permet de tester l'identité de ses arguments et de s'assurer que celle-ci est identique. Le prédicat retourne donc (true) si tous ces arguments ont la même identité.


La forme courante du prédicat ==? est la suivante:

(==? <arg1> <arg2> [ … <argN>])


Rappelons que le test identitaire n'est pas un test d'égalité de valeur, mais bien d'égalité de référence. Ainsi, si les données comparées ont la même référence, le test fourni un résultat (true). Par contre, si elles n'ont pas la même référence, le test s'achève sur un résultat (false) même si leurs valeurs sont égales.

(display (==? (nothing) (nothing))
(display (==? 1 1)

(true)
(false)

Le test d'identité est notamment très utile pour s'assurer si plusieurs variables font ou non référence au même objet.

(define 'x 10)
(define 'y 10)
(define 'z x)
(display (==? x y))
(display (==? x z))

(false)
(true)