Cadeia booleana

Escreva três funções:

  1. boolean_and
  2. boolean_or
  3. boolean_xor

Essas funções devem avaliar uma lista de valores True e False, começando pelo elemento mais à esquerda e avaliando aos pares.

Exemplos

boolean_and([True, True, False, True]) ➞ False
# [True, True, False, True] => [True, False, True] => [False, True] => False

boolean_or([True, True, False, False]) ➞ True
# [True, True, False, True] => [True, False, False] => [True, False] => True

boolean_xor([True, True, False, False]) ➞ False
# [True, True, False, False] => [False, False, False] => [False, False] => False

Notas

  • XOR é igual a OR, exceto que exclui [True, True].
  • Sempre que você avalia os elementos nas posições 0 e 1, reduz esses elementos a um único resultado.