LISP - Karakterler
LISP'de karakterler veri nesneleri olarak temsil edilir. character.
# \ Karakterinden önce gelen bir karakter nesnesini karakterin kendisinden önce gösterebilirsiniz. Örneğin, # \ a, a karakteri anlamına gelir.
Boşluk ve diğer özel karakterler, karakterin adından önce # \ gelecek şekilde gösterilebilir. Örneğin, # \ SPACE, boşluk karakterini temsil eder.
Aşağıdaki örnek bunu göstermektedir -
Misal
Main.lisp adında yeni bir kaynak kodu dosyası oluşturun ve içine aşağıdaki kodu yazın.
(write 'a)
(terpri)
(write #\a)
(terpri)
(write-char #\a)
(terpri)
(write-char 'a)
Kodu çalıştırdığınızda, aşağıdaki sonucu döndürür -
A
#\a
a
*** - WRITE-CHAR: argument A is not a character
Özel karakterler
Ortak LISP, kodunuzda aşağıdaki özel karakterlerin kullanılmasına izin verir. Yarı standart karakterler olarak adlandırılırlar.
- #\Backspace
- #\Tab
- #\Linefeed
- #\Page
- #\Return
- #\Rubout
Karakter Karşılaştırma İşlevleri
<Ve> gibi sayısal karşılaştırma işlevleri ve operatörler karakterler üzerinde çalışmaz. Common LISP, kodunuzdaki karakterleri karşılaştırmak için başka iki işlev seti sağlar.
Bir küme büyük / küçük harfe duyarlıdır ve diğeri büyük / küçük harfe duyarlı değildir.
Aşağıdaki tablo işlevleri göstermektedir -
Büyük / Küçük Harfe Duyarlı İşlevler | Büyük / Küçük Harfe Duyarlı Olmayan İşlevler | Açıklama |
---|---|---|
char = | char-eşit | İşlenenlerin değerlerinin hepsinin eşit olup olmadığını kontrol eder, evet ise koşul doğru olur. |
char / = | char-eşit değil | İşlenenlerin değerlerinin tümünün farklı olup olmadığını kontrol eder, değerler eşit değilse koşul doğru olur. |
karakter < | char-lessp | İşlenenlerin değerlerinin tekdüze olarak azalıp azalmadığını kontrol eder. |
karakter> | char-büyükp | İşlenenlerin değerlerinin monoton olarak artıp artmadığını kontrol eder. |
karakter <= | char-not-büyükp | Herhangi bir sol işlenenin değerinin bir sonraki sağ işlenenin değerinden büyük veya ona eşit olup olmadığını kontrol eder, evet ise koşul doğru olur. |
char> = | char-not-lessp | Herhangi bir sol işlenenin değerinin sağ işlenenin değerinden küçük veya ona eşit olup olmadığını kontrol eder, evet ise koşul doğru olur. |
Misal
Main.lisp adında yeni bir kaynak kodu dosyası oluşturun ve içine aşağıdaki kodu yazın.
; 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))
Kodu çalıştırdığınızda, aşağıdaki sonucu döndürür -
NIL
T
NIL
T
NIL
T
NIL