LISP - Personnages

Dans LISP, les caractères sont représentés comme des objets de données de type character.

Vous pouvez désigner un objet caractère précédant # \ avant le caractère lui-même. Par exemple, # \ a signifie le caractère a.

L'espace et les autres caractères spéciaux peuvent être indiqués par # \ précédant le nom du caractère. Par exemple, # \ SPACE représente le caractère d'espace.

L'exemple suivant illustre ceci -

Exemple

Créez un nouveau fichier de code source nommé main.lisp et tapez le code suivant dedans.

(write 'a)
(terpri)
(write #\a)
(terpri)
(write-char #\a)
(terpri)
(write-char 'a)

Lorsque vous exécutez le code, il renvoie le résultat suivant -

A
#\a
a
*** - WRITE-CHAR: argument A is not a character

Caractères spéciaux

Common LISP permet d'utiliser les caractères spéciaux suivants dans votre code. Ils sont appelés les caractères semi-standard.

  • #\Backspace
  • #\Tab
  • #\Linefeed
  • #\Page
  • #\Return
  • #\Rubout

Fonctions de comparaison de caractères

Les fonctions et opérateurs de comparaison numérique, tels que, <et> ne fonctionnent pas sur les caractères. Common LISP fournit deux autres ensembles de fonctions pour comparer les caractères de votre code.

Un ensemble est sensible à la casse et l'autre non sensible à la casse.

Le tableau suivant présente les fonctions -

Fonctions sensibles à la casse Fonctions insensibles à la casse La description
char = char-égal Vérifie si les valeurs des opérandes sont toutes égales ou non, si oui, la condition devient vraie.
char / = char-pas-égal Vérifie si les valeurs des opérandes sont toutes différentes ou non, si les valeurs ne sont pas égales, la condition devient vraie.
char < char-lessp Vérifie si les valeurs des opérandes décroissent de manière monotone.
char> char-plus grand Vérifie si les valeurs des opérandes augmentent de manière monotone.
char <= char-pas-plus grand Vérifie si la valeur d'un opérande gauche est supérieure ou égale à la valeur de l'opérande droit suivant, si oui, la condition devient vraie.
char> = char-not-lessp Vérifie si la valeur d'un opérande gauche est inférieure ou égale à la valeur de son opérande droit, si oui, la condition devient vraie.

Exemple

Créez un nouveau fichier de code source nommé main.lisp et tapez le code suivant dedans.

; case-sensitive comparison
(write (char= #\a #\b))
(terpri)
(write (char= #\a #\a))
(terpri)
(write (char= #\a #\A))
(terpri)
   
;case-insensitive comparision
(write (char-equal #\a #\A))
(terpri)
(write (char-equal #\a #\b))
(terpri)
(write (char-lessp #\a #\b #\c))
(terpri)
(write (char-greaterp #\a #\b #\c))

Lorsque vous exécutez le code, il renvoie le résultat suivant -

NIL
T
NIL
T
NIL
T
NIL