clojure
clojure.core
Поиск…
Вступление
Этот документ дает различные базовые функции, предлагаемые clojure. Для этого нет явной зависимости, которая входит в состав org.clojure.
Определение функций в clojure
(defn x [a b]
(* a b)) ;; public function
=> (x 3 2) ;; 6
=> (x 0 9) ;; 0
(defn- y [a b]
(+ a b)) ;; private function
=> (x (y 1 2) (y 2 3)) ;; 15
Assoc - обновление карт / векторных значений в clojure
При применении на карте возвращается новая карта с новыми или обновленными парами ключей val.
Его можно использовать для добавления новой информации в существующую карту.
(def userData {:name "Bob" :userID 2 :country "US"})
(assoc userData :age 27) ;; { :name "Bob" :userID 2 :country "US" :age 27}
Он заменяет старое информационное значение, если имеется существующий ключ.
(assoc userData :name "Fred") ;; { :name "Fred" :userID 2 :country "US" }
(assoc userData :userID 3 :age 27) ;; {:name "Bob" :userID 3 :country "US" :age 27}
Его также можно использовать для вектора для замены значения по указанному индексу.
(assoc [3 5 6 7] 2 10) ;; [3 5 10 7]
(assoc [1 2 3 4] 6 6) ;; java.lang.IndexOutOfBoundsException
Операторы сравнения в Clojure
Сравнения - это функции в clojure. То, что это означает в (2>1)
есть (> 2 1)
в clojure. Вот все операторы сравнения в clojure.
- Лучше чем
(> 2 1) ;; true
(> 1 2) ;; false
- Меньше, чем
(< 2 1) ;; false
- Больше или равно
(>= 2 1) ;; true
(>= 2 2) ;; true
(>= 1 2) ;; false
- Меньше или равно
(<= 2 1) ;; false
(<= 2 2) ;; true
(<= 1 2) ;; true
- Равно
(= 2 2) ;; true
(= 2 10) ;; false
- Не равный
(not= 2 2) ;; false
(not= 2 10) ;; true
Disoc - disassociating ключ из карты clojure
Это возвращает карту без пар ключ-значение для ключей, указанных в аргументе функции. Его можно использовать для удаления информации из существующей карты.
(dissoc {:a 1 :b 2} :a) ;; {:b 2}
Его также можно использовать для диссоциации нескольких ключей:
(dissoc {:a 1 :b 2 :c 3} :a :b) ;; {:c 3}