Clojure - Operatori
Un operator è un simbolo che dice al compilatore di eseguire manipolazioni matematiche o logiche specifiche.
Clojure ha i seguenti tipi di operatori:
- Operatori aritmetici
- Operatori relazionali
- Operatori logici
- Operatori bit per bit
Note - In Clojure, gli operatori e gli operandi funzionano nella seguente sintassi.
Sintassi
(operator operand1 operand2 operandn)
Per esempio,
Esempio
(+ 1 2)
L'esempio precedente esegue un'operazione aritmetica sui numeri 1 e 2.
Operatori aritmetici
Il linguaggio Clojure supporta i normali operatori aritmetici come qualsiasi linguaggio. Di seguito sono riportati gli operatori aritmetici disponibili in Clojure.
| Operatore | Descrizione | Esempio |
|---|---|---|
| + | Aggiunta di due operandi | (+ 1 2) darà 3 |
| - | Sottrae il secondo operando dal primo | (- 2 1) darà 1 |
| * | Moltiplicazione di entrambi gli operandi | (* 2 2) darà 4 |
| / | Divisione del numeratore per denominatore | (float (/ 3 2)) restituirà 1.5 |
| inc | Operatori incrementali utilizzati per incrementare il valore di un operando di 1 | inc 5 darà 6 |
| dec | Operatori incrementali utilizzati per decrementare il valore di un operando di 1 | 5 dicembre darà 4 |
| max | Restituisce il più grande dei suoi argomenti | max 1 2 3 restituirà 3 |
| min | Restituisce il più piccolo dei suoi argomenti | min 1 2 3 restituirà 1 |
| rem | Resto della divisione del primo numero per il secondo | rem 3 2 darà 1 |
Operatori relazionali
Gli operatori relazionali consentono il confronto degli oggetti. Di seguito sono riportati gli operatori relazionali disponibili in Clojure.
| Operatore | Descrizione | Esempio |
|---|---|---|
| = | Verifica l'uguaglianza tra due oggetti | (= 2 2) darà vero |
| non = | Verifica la differenza tra due oggetti | (non = 3 2) darà vero |
| < | Controlla se l'oggetto sinistro è minore dell'operando destro | (<2 3) darà vero |
| <= | Verifica se l'oggetto sinistro è minore o uguale all'operando destro | (<= 2 3) darà vero |
| > | Verifica se l'oggetto sinistro è maggiore dell'operando destro | (> 3 2) darà vero |
| > = | Verifica se l'oggetto sinistro è maggiore o uguale all'operando destro | (> = 3 2) darà vero |
Operatori logici
Gli operatori logici vengono utilizzati per valutare le espressioni booleane. Di seguito sono riportati gli operatori logici disponibili in Groovy.
| Operatore | Descrizione | Esempio |
|---|---|---|
| and | Questo è l'operatore logico "and" | (o vero vero) darà vero |
| or | Questo è l'operatore logico "or" | (e vero falso) darà falso |
| not | Questo è l'operatore logico "non" | (non falso) darà vero |
Il seguente frammento di codice mostra come possono essere utilizzati i vari operatori.
Operatori bit per bit
Clojure fornisce quattro operatori bit per bit. Di seguito sono riportati gli operatori bit per bit disponibili in Clojure.
| Sr.No. | Operatore e descrizione |
|---|---|
| 1 | bit-and Questo è l'operatore "and" bit per bit |
| 2 | bit-or Questo è l'operatore "or" bit per bit |
| 3 | bit-xor Questo è l'operatore "xor" o Exclusive "or" bit per bit |
| 4 | bit-not Questo è l'operatore di negazione bit per bit |
Di seguito è riportata la tabella della verità che mostra questi operatori.
| p | q | p & q | p | q | p ^ q |
|---|---|---|---|---|
| 0 | 0 | 0 | 0 | 0 |
| 0 | 1 | 0 | 1 | 1 |
| 1 | 1 | 1 | 1 | 0 |
| 1 | 0 | 0 | 1 | 1 |
Precedenza operatore
Come nel caso dei LISP in generale, non è necessario preoccuparsi della precedenza degli operatori. Questo è uno dei vantaggi delle espressioni S e della notazione dei prefissi. Tutte le funzioni valutano da sinistra a destra e dentro e fuori. Gli operatori in Clojure sono solo funzioni e tutto è completamente tra parentesi.
