Elixir has three values related to Boolean operations: true, false, and nil (where nil represents the absence of value—similar to null in most other languages). However, those are just some syntatic sugar, as internally they are represented as atoms of the same name, as you can see in the following example:
iex> true == :truetrueiex> false == :falsetrueiex> nil == :niltrue
You have the common Boolean operators, or, and, and not:
iex> true or falsetrueiex> true and falsefalseiex> not falsetrue
However, these operators are type-strict in their first argument: they only accept true or false. If you pass anything else as an argument, you'll get BadBooleanError.
This is where the concept of truthiness and falseness enters. Similar to ...