LISP - Operatörler

Operatör, derleyiciye belirli matematiksel veya mantıksal işlemleri gerçekleştirmesini söyleyen bir semboldür. LISP, çeşitli işlevler, makrolar ve diğer yapılarla desteklenen veriler üzerinde sayısız işleme izin verir.

Veriler üzerinde izin verilen işlemler şu şekilde kategorize edilebilir:

  • Aritmetik işlemler
  • Karşılaştırma İşlemleri
  • Mantıksal İşlemler
  • Bitsel İşlemler

Aritmetik işlemler

Aşağıdaki tablo, LISP tarafından desteklenen tüm aritmetik işleçleri göstermektedir. Değişken varsayA 10 ve değişken tutar B 20 tutar sonra -

Show Examples

Şebeke Açıklama Misal
+ İki işlenen ekler (+ AB) 30 verecek
- İlk işlenenden ikinci işleneni çıkarır (- AB) -10 verecektir
* Her iki işleneni de çarpar (* AB) 200 verecek
/ Payı, numaratörden ayırıcıya böler (/ BA) 2 verecek
mod, rem Modül İşleci ve bir tamsayı bölmesinden sonra kalanı (mod BA) 0 verecek
incf Arttırma operatörü, belirtilen ikinci bağımsız değişkenle tamsayı değerini artırır (A 3 dahil) 13 verecektir
decf Azaltma operatörü, belirtilen ikinci bağımsız değişken kadar tamsayı değerini azaltır (decf A 4) 9 verir

Karşılaştırma İşlemleri

Aşağıdaki tablo, LISP tarafından desteklenen ve sayıları karşılaştıran tüm ilişkisel operatörleri göstermektedir. Bununla birlikte, diğer dillerdeki ilişkisel operatörlerin aksine, LISP karşılaştırma operatörleri ikiden fazla işlenen alabilir ve yalnızca sayılar üzerinde çalışırlar.

Değişken varsay A 10 ve değişken tutar B 20 tutar, sonra -

Show Examples

Şebeke Açıklama Misal
= İşlenenlerin değerlerinin hepsinin eşit olup olmadığını kontrol eder, evet ise koşul doğru olur. (= AB) doğru 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. (/ = AB) doğrudur.
> İşlenenlerin değerlerinin tekdüze olarak azalıp azalmadığını kontrol eder. (> AB) doğru değil.
< İşlenenlerin değerlerinin monoton olarak artıp artmadığını kontrol eder. (<AB) doğrudur.
> = 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. (> = AB) doğru değil.
<= 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. (<= AB) doğrudur.
max İki veya daha fazla argümanı karşılaştırır ve maksimum değeri döndürür. (maks AB), 20 değerini döndürür
min İki veya daha fazla argümanı karşılaştırır ve minimum değeri döndürür. (dk AB), 10 değerini döndürür

Boole Değerlerinde Mantıksal İşlemler

Common LISP, üç mantıksal operatör sağlar: and, or, ve notBoolean değerleri üzerinde çalışır. VarsaymakA sıfır değerine sahiptir ve B 5 değerine sahipse -

Show Examples

Şebeke Açıklama Misal
ve Herhangi bir sayıda argüman alır. Argümanlar soldan sağa doğru değerlendirilir. Tüm bağımsız değişkenler sıfır olmayan olarak değerlendirilirse, son bağımsız değişkenin değeri döndürülür. Aksi takdirde nil döndürülür. (ve AB) NIL döndürür.
veya Herhangi bir sayıda argüman alır. Bağımsız değişkenler sıfır olmayan olarak değerlendirilene kadar soldan sağa değerlendirilir, bu durumda bağımsız değişken değeri döndürülür, aksi takdirde döndürürnil. (veya AB) 5 döndürür.
değil Bir argüman alır ve geri döner t argüman değerlendirilirse nil. (A değil) T döndürür.

Sayılarda Bitsel İşlemler

Bitsel operatörler bitler üzerinde çalışır ve bit bit işlem gerçekleştirir. Bitsel ve, or, ve xor işlemleri için doğruluk tabloları aşağıdaki gibidir -

Show Examples

p q p ve q p veya q p xor q
0 0 0 0 0
0 1 0 1 1
1 1 1 1 0
1 0 0 1 1
Assume if A = 60; and B = 13; now in binary format they will be as follows:
A = 0011 1100
B = 0000 1101
-----------------
A and B = 0000 1100
A or B = 0011 1101
A xor B = 0011 0001
not A  = 1100 0011

LISP tarafından desteklenen Bitwise operatörleri aşağıdaki tabloda listelenmiştir. Değişken varsayA 60 ve değişken tutar B 13 tutar, sonra -

Şebeke Açıklama Misal
logand Bu, argümanlarının bit bazında mantıksal AND değerini döndürür. Herhangi bir argüman verilmemişse, sonuç bu işlem için bir özdeşlik olan -1'dir. (logand ab)) 12 verecektir
Logior Bu, argümanlarının bit-bazında mantıksal KAPSAYICI VEYA'ını döndürür. Herhangi bir argüman verilmemişse, sonuç sıfırdır ve bu işlem için bir kimliktir. (logior ab) 61 verecektir
logxor Bu, argümanlarının bit bazında mantıksal HARİÇ VEYA HARİÇ VEYA değerini döndürür. Herhangi bir argüman verilmemişse, sonuç sıfırdır ve bu işlem için bir kimliktir. (logxor ab) 49 verecektir
Lognor Bu, argümanlarının bit bazında NOT değerini döndürür. Herhangi bir argüman verilmemişse, sonuç bu işlem için bir kimlik olan -1'dir. (lognor ab) -62 verir,
logeqv Bu, argümanlarının bit bazında mantıksal EŞDEĞERİNİ (dışlayıcı ne olarak da bilinir) döndürür. Herhangi bir argüman verilmemişse, sonuç bu işlem için bir özdeşlik olan -1'dir. (logeqv ab) -50 verir