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. |