Поток управления / Условные операторы / Операторы if/else

(def a 3)
(def b 5)
(def c 7)

;; and/or/not are ordinary prefix forms, and and/or take any number
;; of arguments — no need to pair them up
(when (and (>= c a) (>= c b))
  (println "nothing is larger than c"))

(when (not (or (>= a b) (>= a c)))
  (println "a is the smallest"))

;; when is an if with no else branch;
;; a comparison chain fits into one call as well
(println "a < b < c is" (< a b c))

;; and/or return a value, not just a flag: and gives the last truthy
;; argument, or gives the first one
(println "(or nil false c) is" (or nil false c))