Elixir सही और गलत वैल्यू को बूलियन टाइप से दर्शाता है। केवल दो वैल्यू होती हैं: true और false। इन वैल्यू को बूलियन ऑपरेटरों के साथ जोड़ा जा सकता है (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 सख्ती से बूलियन हैं, जिसका मतलब है कि इनका पहला आर्गुमेंट बूलियन होना ज़रूरी है। इसी तरह के बूलियन ऑपरेटर भी हैं जो किसी भी तरह के आर्गुमेंट के साथ काम करते हैं: &&/2, ||/2, और !/1।
बूलियन ऑपरेटर शॉर्ट-सर्किट मूल्यांकन का उपयोग करते हैं, जिसका मतलब है कि ऑपरेटर के दाईं ओर वाला एक्सप्रेशन केवल तभी मूल्यांकित होता है जब उसकी ज़रूरत हो।
हर ऑपरेटर की प्राथमिकता अलग होती है, जहाँ not/1 को and/2 और or/2 से पहले मूल्यांकित किया जाता है। ब्रैकेट की मदद से एक्सप्रेशन के एक हिस्से को बाकी हिस्सों से पहले मूल्यांकित किया जा सकता है:
not true and false
# => false
not (true and false)
# => true
जब आप ऐसा फंक्शन लिखते हैं जो बूलियन वैल्यू लौटाता है, तो फंक्शन के नाम के अंत में ? लगाना आम तरीका है। यही तरीका उन वेरिएबलो के लिए भी अपनाया जा सकता है जो बूलियन वैल्यू रखते हैं।
def either_true?(a?, b?) do
a? or b?
end