Η Elixir αναπαριστά τις τιμές αληθής και ψευδής με τον τύπο boolean. Υπάρχουν μόνο δύο τιμές: true και false. Αυτές οι τιμές μπορούν να συνδυαστούν με τελεστές boolean (and/2, or/2, not/1):
true_variable = true and true
false_variable = true and false
true_variable = false or true
false_variable = false or false
true_variable = not false
false_variable = not true
Οι τελεστές and/2, or/2 και not/1 είναι αυστηρά boolean, που σημαίνει ότι απαιτούν το πρώτο τους όρισμα να είναι boolean. Υπάρχουν επίσης ισοδύναμοι τελεστές boolean που λειτουργούν με ορίσματα κάθε τύπου: &&/2, ||/2 και !/1.
Οι τελεστές boolean χρησιμοποιούν αξιολόγηση βραχυκυκλώματος, που σημαίνει ότι η έκφραση στη δεξιά πλευρά του τελεστή αξιολογείται μόνο όταν χρειάζεται.
Κάθε τελεστής έχει διαφορετική προτεραιότητα: το not/1 αξιολογείται πριν από το and/2 και το or/2. Με τις παρενθέσεις μπορείς να αξιολογήσεις ένα μέρος της έκφρασης πριν από τα υπόλοιπα:
not true and false
# => false
not (true and false)
# => true
Όταν γράφεις μια συνάρτηση που επιστρέφει τιμή boolean, είναι ιδιωματικό να τελειώνει το όνομα της συνάρτησης με ?. Την ίδια σύμβαση μπορείς να τη χρησιμοποιήσεις και για μεταβλητές που αποθηκεύουν τιμές boolean.
def either_true?(a?, b?) do
a? or b?
end