Boolean logic with and, or, and not

You can test multiple conditions using boolean logic.

Boolean logic refers to combining and changing the results of predicates using and,or, and not.

It follows the common sense way you look at things.

Is this and that true? Only if both are true. Is this or that true?

Yes, if either -- or both! -- are. Is this not true? Yes, if it's false.

Truthy and falsey table

x y (and x y) (or x y) (not x) (not y)
false false false false true true
true false false true false true
true true true true false false
false true false true true false

and, or, and not combination

and, or, and not can be combined to create a more complex condition.

Here is an example containing several conditions for confirming if a calendar year is a leap year.

(defn leap-year?
  "Every four years, except years divisible by 100, but yes for years divisible by 400."
  (and (zero? (mod year 4))
       (or (zero? (mod year 400))
           (not (zero? (mod year 100))))))
(leap-year? 1984)

Try explain this function to another student

If it seems complicated, take each of the conditions by themselves to see what they do. Try the conditions with different years


If you get stuck with the exercise, ask a volunteer to help.

results matching ""

    No results matching ""