يمثّل 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.
تستخدم العوامل المنطقية التقييم قصير الدائرة (short-circuit evaluation)، أي أن التعبير الواقع على الجانب الأيمن من العامل لا يُقيَّم إلا عند الحاجة.
لكل عامل أولوية مختلفة، حيث يُقيَّم 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