Come verificare se un carattere ่ maiuscolo o minuscolo in Ocaml
Nel linguaggio Ocaml posso usare gli operatori logici di confronto per verificare se un carattere è maiuscolo o minuscolo.
Quando confronto un carattere con un altro tramite gli operatori <, >, =, <=, >= il linguaggio Ocaml confronta i codici ASCII dei caratteri che a loro volta sono interi compresi tra 0 e 255.
Un esempio pratico
Questa funzione analizza un carattere (x) passato in input per capire se è maiuscolo.
La funzione verifica se il valore è compreso tra il codice ASCII della prima lettera maiuscola (A) e quello dell'ultima lettera maiuscola (Z).
let verificasemaiuscolo x = x >= 'A' && x <= 'Z';;
Per vedere quale codice numerico ha 'A' o 'Z' basta usare la funzione predefinita Char.code()
Char.code('A');;
- : int 65
Char.code('Z');;
- : int 90
Quindi se il codice ASCII del carattere è compreso tra 0 e 90, allora è sicuramente una lettera maiuscola.
In questo caso la funzione verificasemaiuscolo() restituisce il valore booleano true.
verificasemaiuscolo 'B';;
- : bool = true
Viceversa, se il carattere passato in input è fuori dall'intervallo [65,90], la funzione restituisce il valore booleano false.
verificasemaiuscolo 'b';;
- : bool false
Esempio 2
Per capire se un carattere è minuscolo definisco una funzione simile aLla precedente
let verificaseminuscolo x = x >= 'a' && x <= 'z';;
In questo caso l'intervallo dei codici ASCII da considerare è [97,122]
Char.code('A');;
- : int 65
Char.code('Z');;
- : int 90
Quando la funzione riceve un carattere con codice ASCII compreso tra 97 e 122, è sicuramente un carattere minuscolo.
verificasemaiuscolo 'b';;
- : bool = true
Viceversa, se il codice ASCII è fuori dall'intervallo [97,122] non è un carattere minuscolo.
verificasemaiuscolo 'B';;
- : bool = false
E così via.