Mathematica dispone di funzioni booleane (cioè che assumono uno dei due valori logici True o True) per il controllo del formato numerico. Prima di specificare tali comandi, premettiamo alcune nozioni sull'assegnazione di variabili. Osserviamo innnanzitutto che Mathematica non gestisce solo numeri. Anzi, essendo programmato in SMP (programma di manipolazione di simboli) è più un ambiente di calcolo simbolico, anche se poi gestisce fin troppo bene il calcolo numerico.
Dunque, per assegnare una variabile occorre in primis darle un nome, ricordando che Mathematica è case sensitive, cioè distingue le minuscole dalle maiuscole. Supponiamo che la nostra variabile sia una grandezza a che può assumere diversi valori. Ad esempio, uno di questi valori è il numero intero naturale 2. L'assegnazione si esplica attraverso "=". Ad esempio:
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità mathematica, assegnazione immediata](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-k218E7.jpeg)
Da tale schermata vediamo che Mathematica visualizza il valore della variabile. Per impedire tale visualizzazione possiamo utilizzare il terminatore ";". Quindi:
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità mathematica, assegnazione immediata](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-c8Lcfi.jpeg)
In entrambi i modi (con o senza terminatore) Mathematica ha memorizzato il valore 2 associandolo alla variabile di nome a. Infatti, se proviamo a richiamare tale variabile otteniamo:
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità mathematica, variabili,assegnazione immediata](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-bleXxh.jpeg)
Per quanto detto in precedenza, una variabile può essere un "qualcosa" di diverso da un numero. Supponiamo di avere una stringa di caratteri del tipo "ciao mondo". In tal caso, se stiamo lavorando nella stessa sessione in cui abbiamo definito la variabile a, dobbiamo utilizzare un nome diverso al fine di evitare conflitti. In alternativa, dobbiamo cancellare il valore assegnato ad a, in modo da poter riutilizzare nuovamente questo simbolo. Tuttavia, vedremo più avanti i comandi che permettono di oscurare le variabili. Allora scriviamo:
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità mathematica, assegnazione immediata](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-vOk6Ic.jpeg)
Se proviamo a richiamare la variabile b:
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità mathematica,variabili](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-lye7et.jpeg)
Dopo questa necessaria premessa, passiamo al controllo dei formati. Per quanto visto, Mathematica "immagazzina" svariati tipi di dati e non solo numeri. Possiamo quindi controllare se una data variabile sia un numero. Il comando da utilizzare è NumberQ[]. Ad esempio:
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità mathematica,strutture dati](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-tCt0id.jpeg)
che è proprio quello che ci si aspettava. Invece:
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità mathematica,strutture dati](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-Rf9SpN.jpeg)
E, infatti, b non è un numero ma una stringa. Una funzione simile a NumberQ[] è NumericQ[]
Se l'output di NumberQ[] è True, possiamo interrogare Mathematica circa il formato numerico. Il comando è NumberQ[]:
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità mathematica,strutture dati](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-tQA1gu.jpeg)
Un'osservazione: esiste una scorciatoia nel digitare i comandi. Anzichè digitare Comando[a], si può scrivere a//Comando. Ad esempio:
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità mathematica,strutture dati](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-nyimFT.jpeg)
È possibile, poi, eseguire un controllo di parità di un intero relativo, cioè stabile se è pari o dispari. Precisamente EvenQ[n] restituisce True se n è pari, False nel caso contrario. Il comando complementare è OddQ[].
Per il riconoscimento dei primi, abbiamo PrimeQ[]. Ad esempio:
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità mathematica,riconoscimento di primi](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-8Mf7It.jpeg)
Abbiamo visto all'inizio che per assegnare una variabile si utilizza =. Se, invece, vogliamo confrontare i valori di due variabili, si utilizza il "doppio uguale" ==. Ad esempio, supponiamo di avere le variabili:
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità struture dati, mathematica](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-rPzjIJ.jpeg)
Per il confronto del formato numerico, invece, si utilizza il "triplo uguale" ===
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità struture dati, mathematica](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-XiZBvs.jpeg)
come appunto doveva, essere, visto che x è Real e z è Integer. Notiamo che SameQ[] è la funzione booleana che svolge la stessa azione di ===
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità struture dati, mathematica](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-21rvge.jpeg)
La funzione booleana complementare è UnsameQ[] che può essere invocata da =!=
![[¯|¯] Funzioni booleane per il controllo dei formati numerici. Controllo di parità. Controllo di primalità struture dati, mathematica](http://m2.paperblog.com/i/261/2619237/funzioni-booleane-per-il-controllo-dei-format-L-F7261C.jpeg)