LogicOperations

From Elixir Wiki
Jump to navigation Jump to search

Logic Operations[edit]

Logic operations are fundamental operations in programming that involve evaluating and manipulating Boolean values. These operations are used to make decisions, control program flow, and perform logical calculations. In Elixir, several logic operations are supported, including negation, conjunction (AND), disjunction (OR), and exclusive disjunction (XOR).

Negation[edit]

The negation operation, also known as logical NOT, is a unary operation that takes a single Boolean value and returns its inverse.

Syntax:

``` not(boolean) ```

Example:

```elixir not true ```

Conjunction (AND)[edit]

The conjunction operation, also known as logical AND, takes two Boolean values and returns true if both values are true.

Syntax:

``` boolean1 and boolean2 ```

Example:

```elixir true and false ```

Disjunction (OR)[edit]

The disjunction operation, also known as logical OR, takes two Boolean values and returns true if at least one of the values is true.

Syntax:

``` boolean1 or boolean2 ```

Example:

```elixir true or false ```

Exclusive Disjunction (XOR)[edit]

The exclusive disjunction operation, also known as logical XOR, takes two Boolean values and returns true if exactly one of the values is true.

Syntax:

``` boolean1 xor boolean2 ```

Example:

```elixir true xor false ```

Short-Circuit Evaluation[edit]

Elixir, like many programming languages, implements short-circuit evaluation for logic operations. Short-circuit evaluation means that the second operand of a logic operation is only evaluated if the result can already be determined based on the first operand.

For conjunction (AND), if the first operand is false, the second operand is not evaluated because the result will always be false.

For disjunction (OR), if the first operand is true, the second operand is not evaluated because the result will always be true.

Syntax:

``` expression1 and expression2 expression1 or expression2 ```

Example:

```elixir false and (1 / 0) true or (1 / 0) ```

Comparison with Truthiness[edit]

In addition to the explicit logic operations, Elixir provides a convenient way to check the truthiness of values using the `&&` (and) and `||` (or) operators. These operators evaluate their operands and return the first operand (if it is sufficient to determine the result) or the second operand otherwise.

Syntax:

``` value1 && value2 value1 || value2 ```

Example:

```elixir 4 > 2 && 6 < 10 "elixir" || false ```

See Also[edit]