 (defmacro для "див. for" [set-expr body-expr] `(for ~set-expr body-expr))
 
 (defmacro запис "див. defrecord" [name fields & opt] `(defrecord ~name ~fields ~@opt))
-
-;; умови 
-
-(постійна істина true)
-
-(постійна фальш false)
- 
-(функція ні? "not" [x] (not x))
-
-(функція та? "and" ([x y] (and x y)) ([x y & більше] (reduce та? (та? x y) більше)))
-
-(функція кожен? "див. every?" ([умова колекція] (every? умова колекція)))
-
-(функція або? "or" ([x y] (or x y)) ([x y & більше] (reduce або? (або? x y) більше)))
-
-;; системні
-
-(функція вихід ([] (вихід 0)) ([статус] (System/exit статус)))
-
-(defn використай [& args] (use args))
 
 
 ;; колекції

(функція зменш "див. reduce" [функція колекція] (reduce функція колекція))
(функція зменш "див. reduce" [функція значення колекція] (reduce функція значення колекція))

;; різні

(функція текст "(див. str)" [] (str))
(функція текст "(див. str)" [x] (str x))
(функція текст "(див. str)" [x y] (str x y))
(функція текст "(див. str)" [x y & більше] (зменш текст (текст x y) більше))


(функція дай-випадкове "див. rand-int" [максимальне] (rand-int максимальне))

;; (use 'uawa.core)

;; макроси
(defmacro визначення "див. def" [символ документація значення] `(def ~символ ~документація ~значення))
(defmacro постійна "див. defonce" [назва значення] `(let [v# (def ~назва)](when-not (.hasRoot v#) (def ~назва ~значення))))

(defmacro функція "див. defn" [назви & описи] (list* `defn (with-meta назви (assoc (meta назви) :private false)) описи))
