Skip to content

Latest commit

 

History

History
22 lines (15 loc) · 1.18 KB

03-06-Truthiness.md

File metadata and controls

22 lines (15 loc) · 1.18 KB

Істинність

Семантика цього аспекту дуже різна у кожній мові (часто неправильна). Більшість мов уважають порожні колекції, ціле число 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