clojure
clojure.core
Buscar..
Introducción
Este documento da varias funcionalidades básicas ofrecidas por clojure. No se necesita una dependencia explícita para esto y se incluye como parte de org.clojure.
Definiendo funciones en 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 - actualización de los valores del mapa / vector en clojure
Cuando se aplica en un mapa, devuelve un nuevo mapa con pares de valores clave nuevos o actualizados.
Se puede utilizar para agregar nueva información en el mapa existente.
(def userData {:name "Bob" :userID 2 :country "US"})
(assoc userData :age 27) ;; { :name "Bob" :userID 2 :country "US" :age 27}
Reemplaza el valor de información anterior si se suministra una clave existente.
(assoc userData :name "Fred") ;; { :name "Fred" :userID 2 :country "US" }
(assoc userData :userID 3 :age 27) ;; {:name "Bob" :userID 3 :country "US" :age 27}
También se puede utilizar en un vector para reemplazar el valor en el índice especificado.
(assoc [3 5 6 7] 2 10) ;; [3 5 10 7]
(assoc [1 2 3 4] 6 6) ;; java.lang.IndexOutOfBoundsException
Operadores de Comparación en Clojure
Las comparaciones son funciones en clojure. Lo que eso significa en (2>1)
es (> 2 1)
en clojure. Aquí están todos los operadores de comparación en clojure.
- Mas grande que
(> 2 1) ;; true
(> 1 2) ;; false
- Menos que
(< 2 1) ;; false
- Mayor qué o igual a
(>= 2 1) ;; true
(>= 2 2) ;; true
(>= 1 2) ;; false
- Menos que o igual a
(<= 2 1) ;; false
(<= 2 2) ;; true
(<= 1 2) ;; true
- Igual a
(= 2 2) ;; true
(= 2 10) ;; false
- No igual a
(not= 2 2) ;; false
(not= 2 10) ;; true
Dissoc: disociar una clave de un mapa de clojure
Esto devuelve un mapa sin los pares clave-valor para las claves mencionadas en el argumento de la función. Se puede utilizar para eliminar información del mapa existente.
(dissoc {:a 1 :b 2} :a) ;; {:b 2}
También se puede utilizar para disociar varias claves como:
(dissoc {:a 1 :b 2 :c 3} :a :b) ;; {:c 3}