(or) (or x) (or x & next)
Evaluates exprs one at a time, from left to right. If a form returns a logical true value, or returns that value and doesn't evaluate any of the other expressions, otherwise it returns the value of the last expression. (or) returns nil.
user> (or true false false)
true
user> (or true true true)
true
user> (or false false false)
false
user> (or nil nil)
nil
user> (or false nil)
nil
user> (or true nil)
true
;; or doesn't evaluate if the first value is true
user> (or true (println "foo"))
true
;; order matters
user> (or (println "foo") true)
foo
true
;; does not coerce a given value to a boolean true, returns the value
user> (or false 42)
42
user> (or false 42 9999)
42
user> (or 42 9999)
42
;; See examples for "if" explaining Clojure's idea of logical true
;; and logical false.
;;evaluates last expression for this case
user> (or nil false)
false
user> (or false nil)
nil