Істинність
Семантика цього аспекту дуже різна у кожній мові (часто неправильна). Більшість мов уважають порожні колекції, ціле число 0 та інші схожі значення логічним false. В ClojureScript лише два значення можуть бути false: nil та false. Все інше — розглядається як логічне true.
Маючи можливість імплементувати протокол виклику (IFn, про який ми поговоримо пізніше), такі структури даних, як множини, можуть бути використані в якості предикати, тобто без використання допоміжної функції-обгортки:
(def valid? #{1 2 3})
(filter valid? (range 1 10))
;; => (1 2 3)
Так відбувається тому, що множина повертає значення, яке вона містить, або nil — якщо його нема:
(valid? 1)
;; => 1
(valid? 4)
;; => nil