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