Clojure - Predicados

Predicatessão funções que avaliam uma condição e fornecem um valor verdadeiro ou falso. Vimos funções de predicado nos exemplos do capítulo sobre números. Vimos funções como 'mesmo?' que é usado para testar se um número é par ou não, ou 'neg?' que é usado para testar se um número é maior que zero ou não. Todas essas funções retornam um valor verdadeiro ou falso.

A seguir está um exemplo de predicados em 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)

O programa acima produz a seguinte saída.

true
false
true
true

Além das funções normais de predicado, Clojure fornece mais funções para predicados. Os métodos a seguir estão disponíveis para predicados.

Sr. Não. Métodos e Descrição
1 todo predador

Pega um conjunto de predicados e retorna uma função 'f' que retorna verdadeiro se todos os predicados que o compõem retornam um valor lógico verdadeiro contra todos os seus argumentos, caso contrário, retorna falso.

2 cada?

Retorna verdadeiro se o predicado é verdadeiro para todos os valores, senão falso.

3 alguns

Retorna o primeiro valor verdadeiro lógico para qualquer valor de predicado de x na coleção de valores.

4 nenhum?

Retorna falso se qualquer um dos predicados dos valores em uma coleção for logicamente verdadeiro, caso contrário, verdadeiro.