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.