الیکسیر مقادیر true و false را با نوع «منطقی» نمایش میدهد. تنها دو مقدار وجود دارد: 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