## Logical operator

### Boolean operator

```X : Boolean := A = 10 .mw-parser-output .ada-kw{background:none;border:none;padding:0;margin:0;color:DodgerBlue;font-weight:bold}.mw-parser-output .ada-kw a,.mw-parser-output .ada-kw a:visited{color:inherit}`xor` B = 10;
```

### Boolean operator on arrays

The xor operation is applied to each boolean inside the array.

````type` Day_Of_Month `is` `range` 1 .. 31;
`type` Month_Array `is` `array` (Day_Of_Month) `of` Boolean;

X : Month_Array := Function_1;
Y : Month_Array := Function_2;
Z : Month_Array := X `xor` Y;
```

### Bitwise operator

The operator xor could be used with modular types and also with boolean arrays to perform bitwise operations.

### Ada Quality and Style Guide

`abort` `else` `new` `return`
`abs` `elsif` `not` `reverse`
`abstract` (Ada 95) `end` `null`
`accept` `entry` `select`
`access` `exception` `of` `separate`
`aliased` (Ada 95) `exit` `or` `some` (Ada 2012)
`all` `others` `subtype`
`and` `for` `out` `synchronized` (Ada 2005)
`array` `function` `overriding` (Ada 2005)
`at` `tagged` (Ada 95)
`generic` `package` `task`
`begin` `goto` `parallel` (Ada 2022) `terminate`
`body` `pragma` `then`
`if` `private` `type`
`case` `in` `procedure`
`constant` `interface` (Ada 2005) `protected` (Ada 95) `until` (Ada 95)
`is` `use`
`declare` `raise`
`delay` `limited` `range` `when`
`delta` `loop` `record` `while`
`digits` `rem` `with`
`do` `mod` `renames`
`requeue` (Ada 95) `xor`