LISP - Karakter

Dalam LISP, karakter direpresentasikan sebagai objek data bertipe character.

Anda dapat menunjukkan objek karakter sebelum # \ sebelum karakter itu sendiri. Misalnya, # \ a berarti karakter a.

Spasi dan karakter khusus lainnya dapat dilambangkan dengan # \ sebelum nama karakter. Misalnya, # \ SPASI mewakili karakter spasi.

Contoh berikut menunjukkan ini -

Contoh

Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.

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

Saat Anda menjalankan kode, ia mengembalikan hasil berikut -

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

Karakter spesial

LISP umum memungkinkan penggunaan karakter khusus berikut dalam kode Anda. Mereka disebut karakter semi-standar.

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

Fungsi Perbandingan Karakter

Fungsi dan operator perbandingan numerik, seperti, <dan> tidak berfungsi pada karakter. LISP umum menyediakan dua set fungsi lainnya untuk membandingkan karakter dalam kode Anda.

Satu set peka huruf besar kecil dan yang lainnya tidak peka huruf besar / kecil.

Tabel berikut menyediakan fungsi -

Fungsi Peka Huruf Besar-Kecil Fungsi tidak peka huruf besar / kecil Deskripsi
char = char-equal Memeriksa apakah nilai operan semua sama atau tidak, jika ya maka kondisi menjadi benar.
char / = char-not-equal Memeriksa apakah nilai operan semua berbeda atau tidak, jika nilai tidak sama maka kondisi menjadi benar.
char < char-lessp Memeriksa apakah nilai operan menurun secara monoton.
char> char-lebih besar Memeriksa apakah nilai operan meningkat secara monoton.
char <= char-not-lebih besar Memeriksa apakah nilai setiap operan kiri lebih besar dari atau sama dengan nilai operan kanan berikutnya, jika ya maka kondisi menjadi benar.
char> = char-not-lessp Memeriksa apakah nilai operan kiri kurang dari atau sama dengan nilai operan kanannya, jika ya maka kondisi menjadi benar.

Contoh

Buat file kode sumber baru bernama main.lisp dan ketikkan kode berikut di dalamnya.

; 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))

Saat Anda menjalankan kode, ia mengembalikan hasil berikut -

NIL
T
NIL
T
NIL
T
NIL