Come fare la negazione in Ocaml

Nel linguaggio Ocaml posso creare una funzione per ottenere il contrario di un predicato p.

let negazione p x = not (p x)

Dove p è un predicato logico qualsiasi.

La funzione negazione mi restituisce il contrario del predicato p quando è applicato all'argomento x.

    Un esempio pratico

    Definisco una funzione per stabilire se un numero è pari

    let pari x = x mod 2 = 0

    Poi definisco una funzione per negare un generico predicato p

    let negazione p x = not (p x);;

    Ora richiamo la funzione negazione applicata al predicato pari 6.

    negazione pari 6

    Il risultato è il contrario di pari(6) ossia false.

    - : bool = false

    La funzione pari(6) restituisce il valore booleano true che viene poi negato dall'operatore logico not.

    Qual è la differenza tra la negazione e l'operatore logico not? In Ocaml non posso usare l'operatore not in una funzione currificata. Non posso scrivere not pari 5. Devo scrivere not(pari 5) perché not si applica solo ai valori booleani. Viceversa, la negazione è una funzione currificata che si applica ai predicati.

     


     

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

    FacebookTwitterLinkedinLinkedin
    knowledge base

    Ocaml