LISP - Operator
Operator adalah simbol yang memberi tahu kompiler untuk melakukan manipulasi matematika atau logika tertentu. LISP memungkinkan banyak operasi pada data, didukung oleh berbagai fungsi, makro, dan konstruksi lainnya.
Operasi yang diizinkan pada data dapat dikategorikan sebagai -
- Operasi Aritmatika
- Operasi Perbandingan
- Operasi Logis
- Operasi Bitwise
Operasi Aritmatika
Tabel berikut menunjukkan semua operator aritmatika yang didukung oleh LISP. Asumsikan variabelA memegang 10 dan variabel B memegang 20 lalu -
Show Examples
Operator | Deskripsi | Contoh |
---|---|---|
+ | Menambahkan dua operan | (+ AB) akan memberi 30 |
- | Mengurangi operan kedua dari yang pertama | (- AB) akan memberikan -10 |
* | Menggandakan kedua operan | (* AB) akan memberikan 200 |
/ | Membagi pembilang dengan de-numerator | (/ BA) akan memberikan 2 |
mod, rem | Modulus Operator dan sisa setelah pembagian integer | (mod BA) akan memberikan 0 |
incf | Operator increments meningkatkan nilai integer dengan argumen kedua yang ditentukan | (incf A 3) akan memberikan 13 |
decf | Operator pengurangan menurunkan nilai integer dengan argumen kedua yang ditentukan | (decf A 4) akan memberikan 9 |
Operasi Perbandingan
Tabel berikut menunjukkan semua operator relasional yang didukung oleh LISP yang membandingkan antar angka. Namun tidak seperti operator relasional dalam bahasa lain, operator perbandingan LISP mungkin memerlukan lebih dari dua operan dan hanya bekerja pada angka.
Asumsikan variabel A memegang 10 dan variabel B memegang 20, lalu -
Show Examples
Operator | Deskripsi | Contoh |
---|---|---|
= | Memeriksa apakah nilai operan semua sama atau tidak, jika ya maka kondisi menjadi benar. | (= AB) tidak benar. |
/ = | Memeriksa apakah nilai operan semua berbeda atau tidak, jika nilai tidak sama maka kondisi menjadi benar. | (/ = AB) benar. |
> | Memeriksa apakah nilai operan menurun secara monoton. | (> AB) tidak benar. |
< | Memeriksa apakah nilai operan meningkat secara monoton. | (<AB) benar. |
> = | Memeriksa apakah nilai setiap operan kiri lebih besar dari atau sama dengan nilai operan kanan berikutnya, jika ya maka kondisi menjadi benar. | (> = AB) tidak benar. |
<= | Memeriksa apakah nilai operan kiri kurang dari atau sama dengan nilai operan kanannya, jika ya maka kondisi menjadi benar. | (<= AB) benar. |
maks | Ini membandingkan dua atau lebih argumen dan mengembalikan nilai maksimum. | (max AB) mengembalikan 20 |
min | Ini membandingkan dua atau lebih argumen dan mengembalikan nilai minimum. | (min AB) mengembalikan 10 |
Operasi Logis pada Nilai Boolean
LISP umum menyediakan tiga operator logika: and, or, dan notyang beroperasi pada nilai Boolean. MenganggapA memiliki nilai nihil dan B memiliki nilai 5, lalu -
Show Examples
Operator | Deskripsi | Contoh |
---|---|---|
dan | Ini membutuhkan sejumlah argumen. Argumen dievaluasi dari kiri ke kanan. Jika semua argumen bernilai bukan nil, maka nilai argumen terakhir dikembalikan. Jika tidak, nihil dikembalikan. | (dan AB) akan mengembalikan NIL. |
atau | Ini membutuhkan sejumlah argumen. Argumen dievaluasi dari kiri ke kanan sampai satu mengevaluasi ke non-nil, dalam kasus seperti nilai argumen dikembalikan, jika tidak, ia mengembalikannil. | (atau AB) akan mengembalikan 5. |
tidak | Dibutuhkan satu argumen dan kembali t jika argumen bernilai nil. | (bukan A) akan mengembalikan T. |
Operasi Bitwise pada Bilangan
Operator bitwise bekerja pada bit dan melakukan operasi bit demi bit. Tabel kebenaran untuk operasi bitwise dan, atau, dan xor adalah sebagai berikut -
Show Examples
p | q | p dan q | p atau 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
Operator Bitwise yang didukung oleh LISP tercantum dalam tabel berikut. Asumsikan variabelA memegang 60 dan variabel B memegang 13, lalu -
Operator | Deskripsi | Contoh |
---|---|---|
logand | Ini mengembalikan logika AND yang bijak dari argumennya. Jika tidak ada argumen yang diberikan, maka hasilnya adalah -1, yang merupakan identitas untuk operasi ini. | (logand ab)) akan memberikan 12 |
logior | Ini mengembalikan logika INCLUSIVE OR bit-bijaksana dari argumennya. Jika tidak ada argumen yang diberikan, maka hasilnya nol, yang merupakan identitas untuk operasi ini. | (logior ab) akan menghasilkan 61 |
logxor | Ini mengembalikan logika EXCLUSIVE OR bit-bijaksana dari argumennya. Jika tidak ada argumen yang diberikan, maka hasilnya nol, yang merupakan identitas untuk operasi ini. | (logxor ab) akan menghasilkan 49 |
lognor | Ini mengembalikan bit bijaksana dari argumennya. Jika tidak ada argumen yang diberikan, maka hasilnya adalah -1, yang merupakan identitas untuk operasi ini. | (lognor ab) akan memberikan -62, |
logeqv | Ini mengembalikan EQUIVALENCE logis bit-bijaksana (juga dikenal sebagai eksklusif nor) dari argumennya. Jika tidak ada argumen yang diberikan, maka hasilnya adalah -1, yang merupakan identitas untuk operasi ini. | (logeqv ab) akan memberikan -50 |