clojure
clojure.core
Recherche…
Introduction
Ce document donne diverses fonctionnalités de base offertes par clojure. Il n'y a pas de dépendance explicite nécessaire pour cela et cela fait partie de org.clojure.
Définir des fonctions 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 - Mise à jour des valeurs de carte / vecteur en clojure
Appliquée sur une carte, retourne une nouvelle carte avec des paires de valeurs de clés nouvelles ou mises à jour.
Il peut être utilisé pour ajouter de nouvelles informations dans une carte existante.
(def userData {:name "Bob" :userID 2 :country "US"})
(assoc userData :age 27) ;; { :name "Bob" :userID 2 :country "US" :age 27}
Il remplace l'ancienne valeur d'information si la clé existante est fournie.
(assoc userData :name "Fred") ;; { :name "Fred" :userID 2 :country "US" }
(assoc userData :userID 3 :age 27) ;; {:name "Bob" :userID 3 :country "US" :age 27}
Il peut également être utilisé sur un vecteur pour remplacer la valeur à l'index spécifié.
(assoc [3 5 6 7] 2 10) ;; [3 5 10 7]
(assoc [1 2 3 4] 6 6) ;; java.lang.IndexOutOfBoundsException
Opérateurs de comparaison à Clojure
Les comparaisons sont des fonctions dans la vie. Ce que cela signifie en (2>1)
est (> 2 1)
en clair. Voici tous les opérateurs de comparaison en cloche.
- Plus grand que
(> 2 1) ;; true
(> 1 2) ;; false
- Moins que
(< 2 1) ;; false
- Plus grand ou égal à
(>= 2 1) ;; true
(>= 2 2) ;; true
(>= 1 2) ;; false
- Inférieur ou égal à
(<= 2 1) ;; false
(<= 2 2) ;; true
(<= 1 2) ;; true
- Égal à
(= 2 2) ;; true
(= 2 10) ;; false
- Pas égal à
(not= 2 2) ;; false
(not= 2 10) ;; true
Dissoc - dissocier une clé d'une carte clojure
Cela retourne une carte sans les paires clé-valeur pour les clés mentionnées dans l'argument de la fonction. Il peut être utilisé pour supprimer des informations de la carte existante.
(dissoc {:a 1 :b 2} :a) ;; {:b 2}
Il peut également être utilisé pour dissocier plusieurs clés comme:
(dissoc {:a 1 :b 2 :c 3} :a :b) ;; {:c 3}