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