LISP - Charaktere
In LISP werden Zeichen als Datenobjekte vom Typ dargestellt character.
Sie können ein Zeichenobjekt vor # \ vor dem Zeichen selbst bezeichnen. Zum Beispiel bedeutet # \ a das Zeichen a.
Leerzeichen und andere Sonderzeichen können durch Vorangestelltes # \ vor dem Namen des Zeichens gekennzeichnet werden. Beispielsweise steht # \ SPACE für das Leerzeichen.
Das folgende Beispiel zeigt dies -
Beispiel
Erstellen Sie eine neue Quellcodedatei mit dem Namen main.lisp und geben Sie den folgenden Code ein.
(write 'a)
(terpri)
(write #\a)
(terpri)
(write-char #\a)
(terpri)
(write-char 'a)
Wenn Sie den Code ausführen, wird das folgende Ergebnis zurückgegeben:
A
#\a
a
*** - WRITE-CHAR: argument A is not a character
Spezielle Charaktere
Mit Common LISP können Sie die folgenden Sonderzeichen in Ihrem Code verwenden. Sie werden als Semi-Standard-Zeichen bezeichnet.
- #\Backspace
- #\Tab
- #\Linefeed
- #\Page
- #\Return
- #\Rubout
Zeichenvergleichsfunktionen
Numerische Vergleichsfunktionen und Operatoren wie <und> funktionieren nicht für Zeichen. Common LISP bietet zwei weitere Funktionssätze zum Vergleichen von Zeichen in Ihrem Code.
Ein Satz unterscheidet zwischen Groß- und Kleinschreibung und der andere zwischen Groß- und Kleinschreibung.
Die folgende Tabelle enthält die Funktionen -
Groß- und Kleinschreibung beachten | Funktionen, bei denen die Groß- und Kleinschreibung nicht berücksichtigt wird | Beschreibung |
---|---|---|
char = | char-gleich | Überprüft, ob die Werte der Operanden alle gleich sind oder nicht. Wenn ja, wird die Bedingung wahr. |
char / = | char-ungleich | Überprüft, ob die Werte der Operanden alle unterschiedlich sind oder nicht. Wenn die Werte nicht gleich sind, wird die Bedingung wahr. |
char < | char-lessp | Überprüft, ob die Werte der Operanden monoton abnehmen. |
char> | char-Greaterp | Überprüft, ob die Werte der Operanden monoton ansteigen. |
char <= | char-not-Greaterp | Überprüft, ob der Wert eines linken Operanden größer oder gleich dem Wert des nächsten rechten Operanden ist. Wenn ja, wird die Bedingung wahr. |
char> = | char-not-lessp | Überprüft, ob der Wert eines linken Operanden kleiner oder gleich dem Wert seines rechten Operanden ist. Wenn ja, wird die Bedingung wahr. |
Beispiel
Erstellen Sie eine neue Quellcodedatei mit dem Namen main.lisp und geben Sie den folgenden Code ein.
; 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))
Wenn Sie den Code ausführen, wird das folgende Ergebnis zurückgegeben:
NIL
T
NIL
T
NIL
T
NIL