Clojure - Predykaty
Predicatesto funkcje, które oceniają warunek i podają wartość true lub false. Funkcje predykatów widzieliśmy w przykładach rozdziału poświęconego liczbom. Widzieliśmy funkcje takie jak „nawet?” który jest używany do sprawdzania, czy liczba jest parzysta, czy nie, lub „neg”? który jest używany do sprawdzania, czy liczba jest większa od zera, czy nie. Wszystkie te funkcje zwracają wartość true lub false.
Poniżej znajduje się przykład predykatów w 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)
Powyższy program generuje następujące dane wyjściowe.
true
false
true
true
Oprócz zwykłych funkcji predykatów Clojure zapewnia więcej funkcji dla predykatów. W przypadku predykatów dostępne są następujące metody.
Sr.No. | Metody i opis |
---|---|
1 | every-pred Pobiera zestaw predykatów i zwraca funkcję „f”, która zwraca prawdę, jeśli wszystkie jej predykaty składające zwracają logiczną wartość prawdy dla wszystkich argumentów, w przeciwnym razie zwraca fałsz. |
2 | każdy? Zwraca prawdę, jeśli predykat jest prawdziwy dla każdej wartości, w przeciwnym razie fałsz. |
3 | trochę Zwraca pierwszą logiczną wartość prawdziwą dla dowolnej wartości predykatu x w zbiorze wartości. |
4 | nie-żaden? Zwraca wartość false, jeśli którykolwiek z predykatów wartości w kolekcji jest logicznie prawdziwy, w przeciwnym razie prawda. |