Skip to content

Files

Latest commit

4df8276 · Jan 22, 2024

History

History
44 lines (32 loc) · 1.76 KB

about.md

File metadata and controls

44 lines (32 loc) · 1.76 KB

About

Elixir represents true and false values with the boolean type. There are only two values: true and false. These values can be combined with boolean operators (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

The operators and/2, or/2, and not/1 are strictly boolean which means they require their first argument to be a boolean. There are also equivalent boolean operators that work any type of arguments - &&/2, ||/2, and !/1.

Boolean operators use short-circuit evaluation, which means that the expression on the right-hand side of the operator is only evaluated if needed.

Each of the operators has a different precedence, where not/1 is evaluated before and/2 and or/2. Brackets can be used to evaluate one part of the expression before the others:

not true and false
# => false

not (true and false)
# => true

When writing a function that returns a boolean value, it is idiomatic to end the function name with a ?. The same convention can be used for variables that store boolean values.

def either_true?(a?, b?) do
  a? or b?
end