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.

     


     

    Segnalami un errore, un refuso o un suggerimento per migliorare gli appunti

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Ocaml