Clojure - Predicati

Predicatessono funzioni che valutano una condizione e forniscono un valore vero o falso. Abbiamo visto funzioni predicative negli esempi del capitolo sui numeri. Abbiamo visto funzioni come "anche?" che viene utilizzato per verificare se un numero è pari o no, o "neg?" che viene utilizzato per verificare se un numero è maggiore di zero o meno. Tutte queste funzioni restituiscono un valore vero o falso.

Di seguito è riportato un esempio di predicati in Clojure.

(ns clojure.examples.example
   (:gen-class))

;; This program displays Hello World
(defn Example []
   (def x (even? 0))
   (println x)
   
   (def x (neg? 2))
   (println x)
   
   (def x (odd? 3))
   (println x)
   
   (def x (pos? 3))
   (println x))
(Example)

Il programma precedente produce il seguente output.

true
false
true
true

Oltre alle normali funzioni dei predicati, Clojure fornisce più funzioni per i predicati. I metodi seguenti sono disponibili per i predicati.

Sr.No. Metodi e descrizione
1 ogni predatore

Accetta un insieme di predicati e restituisce una funzione 'f' che restituisce true se tutti i suoi predicati che la compongono restituiscono un valore logico vero rispetto a tutti i suoi argomenti, altrimenti restituisce false.

2 ogni?

Restituisce vero se il predicato è vero per ogni valore, altrimenti falso.

3 alcuni

Restituisce il primo valore vero logico per qualsiasi valore di predicato x nella raccolta di valori.

4 nemmeno uno?

Restituisce falso se uno qualsiasi dei predicati dei valori in una raccolta è logicamente vero, altrimenti vero.