Boolean Chain

Published by Helen Yu in

Write three functions:

  1. boolean_and
  2. boolean_or
  3. boolean_xor

These functions should evaluate an array of true and false values, starting from the leftmost element and evaluating pairwise.

Examples

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

Notes

  • XOR is the same as OR, except that it excludes [true, true].
  • Each time you evaluate an element at 0 and at 1, you collapse it into the single result.
Watch a quick demo on how Edabit works.