Істинність

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

results matching ""

    No results matching ""