 ;; (функція застосуй "див. apply" [f a b c d &args] (apply f a b c d &args))
 (функція потребуй "див. require" [& args] (застосуй require args))
 (defmacro спробуй ([вираз винятоковий-вираз] `(try ~вираз ~винятоковий-вираз )) ([вираз винятоковий-вираз остаточний-вираз] `(try ~вираз ~винятоковий-вираз ~остаточний-вираз )) )
+(defmacro злови [Trhrowable e вираз] `(catch Trhrowable e вираз))
 (функція встав "див. interpose" ([sep] (interpose sep)) ([sep col] (interpose sep col)))
 (функція інтернуй "див intern"  ([ns name] (intern ns name)) ([ns name val] (intern ns name val)))
+
+;; io
+(defmacro сьорбни "див. slurp" [джерело & решта] `(slurp ~джерело ~@решта))
 ;; різні
 
 (функція дай-випадкове "див. rand-int" [максимальне] (rand-int максимальне))

(постійна грн ₴)
(defmacro ціна "ціна у валюті" [назва кількість валюта] `(постійна ~назва (Ціна. ~кількість  ~валюта)))
(метод print-method Ціна [x ^java.io.Writer w] (.write w (str (:кількість x) " " (:валюта x))))
(функція домнож  [x ^clojure.lang.Numbers y] (Ціна. (* (:кількість x) y) (:валюта x)))

(функція вибери-ключі "див. select-keys" [колекція ключі] (select-keys колекція ключі))
(функція сортуй-за "див. sort-by" ([функція-рядків колекція] (sort-by функція-рядків колекція))  ([функція-рядків компаратор колекція] (sort-by функція-рядків компаратор колекція)))
(функція відфільтруй-повтори "див distinct" [колекція] (distinct колекція))
(функція візьми "див. take" ([n] (take n)) ([n col] (take n col)))
(функція вибери-значення "див. vals" ([m] (vals m))
(функція геш-таблиця "див. hash-map" ([] {}) ([& keyvals] (hash-map keyvals)))

;; системні

