LISP - Personaggi
In LISP, i caratteri sono rappresentati come oggetti dati di tipo character.
Puoi indicare un oggetto carattere che precede # \ prima del carattere stesso. Ad esempio, # \ a indica il carattere a.
Lo spazio e altri caratteri speciali possono essere indicati facendo precedere # \ prima del nome del carattere. Ad esempio, # \ SPACE rappresenta il carattere spazio.
Il seguente esempio lo dimostra:
Esempio
Crea un nuovo file di codice sorgente denominato main.lisp e digita il codice seguente.
(write 'a)
(terpri)
(write #\a)
(terpri)
(write-char #\a)
(terpri)
(write-char 'a)
Quando esegui il codice, restituisce il seguente risultato:
A
#\a
a
*** - WRITE-CHAR: argument A is not a character
Personaggi speciali
Common LISP consente di utilizzare i seguenti caratteri speciali nel codice. Sono chiamati i caratteri semi-standard.
- #\Backspace
- #\Tab
- #\Linefeed
- #\Page
- #\Return
- #\Rubout
Funzioni di confronto dei caratteri
Le funzioni e gli operatori di confronto numerico, come, <e> non funzionano sui caratteri. Common LISP fornisce altri due set di funzioni per confrontare i caratteri nel codice.
Un set distingue tra maiuscole e minuscole e l'altro.
La tabella seguente fornisce le funzioni:
Funzioni sensibili al maiuscolo / minuscolo | Funzioni senza distinzione tra maiuscole e minuscole | Descrizione |
---|---|---|
char = | char-equal | Controlla se i valori degli operandi sono tutti uguali o meno, in caso affermativo la condizione diventa vera. |
char / = | char-not-equal | Controlla se i valori degli operandi sono tutti diversi o meno, se i valori non sono uguali la condizione diventa vera. |
char < | char-lessp | Controlla se i valori degli operandi stanno diminuendo in modo monotono. |
char> | carattere maggiore p | Controlla se i valori degli operandi aumentano in modo monotono. |
char <= | char-not-greaterp | Controlla se il valore di un qualsiasi operando sinistro è maggiore o uguale al valore dell'operando destro successivo, in caso affermativo la condizione diventa vera. |
char> = | char-not-lessp | Controlla se il valore di un qualsiasi operando sinistro è minore o uguale al valore del suo operando destro, in caso affermativo la condizione diventa vera. |
Esempio
Crea un nuovo file di codice sorgente denominato main.lisp e digita il codice seguente.
; 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))
Quando esegui il codice, restituisce il seguente risultato:
NIL
T
NIL
T
NIL
T
NIL