Clojure - Predicados

Predicatesson funciones que evalúan una condición y proporcionan un valor de verdadero o falso. Hemos visto funciones de predicado en los ejemplos del capítulo sobre números. Hemos visto funciones como 'incluso?' que se usa para probar si un número es par o no, o "neg"? que se usa para probar si un número es mayor que cero o no. Todas estas funciones devuelven un valor verdadero o falso.

A continuación se muestra un ejemplo de predicados en 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)

El programa anterior produce la siguiente salida.

true
false
true
true

Además de las funciones de predicado normales, Clojure proporciona más funciones para predicados. Los siguientes métodos están disponibles para predicados.

No Señor. Métodos y descripción
1 cada pred

Toma un conjunto de predicados y devuelve una función 'f' que devuelve verdadero si todos los predicados que lo componen devuelven un valor lógico verdadero contra todos sus argumentos, de lo contrario devuelve falso.

2 ¿cada?

Devuelve verdadero si el predicado es verdadero para cada valor, de lo contrario es falso.

3 algunos

Devuelve el primer valor lógico verdadero para cualquier valor de predicado de x en la colección de valores.

4 ¿no cualquiera?

Devuelve falso si alguno de los predicados de los valores de una colección es lógicamente verdadero; de lo contrario, verdadero.