clojure
clojure.core
Ricerca…
introduzione
Questo documento offre varie funzionalità di base offerte da Clojure. Non è necessaria alcuna dipendenza esplicita per questo e viene fornito come parte di org.clojure.
Definire funzioni in 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 - aggiornamento dei valori di mappa / vettore in clojure
Quando applicato su una mappa, restituisce una nuova mappa con val coppie chiave nuove o aggiornate.
Può essere usato per aggiungere nuove informazioni nella mappa esistente.
(def userData {:name "Bob" :userID 2 :country "US"})
(assoc userData :age 27) ;; { :name "Bob" :userID 2 :country "US" :age 27}
Sostituisce il vecchio valore di informazione se viene fornita la chiave esistente.
(assoc userData :name "Fred") ;; { :name "Fred" :userID 2 :country "US" }
(assoc userData :userID 3 :age 27) ;; {:name "Bob" :userID 3 :country "US" :age 27}
Può anche essere utilizzato su un vettore per sostituire il valore nell'indice specificato.
(assoc [3 5 6 7] 2 10) ;; [3 5 10 7]
(assoc [1 2 3 4] 6 6) ;; java.lang.IndexOutOfBoundsException
Operatori di comparazione in Clojure
I confronti sono funzioni in clojure. Cosa significa in (2>1)
è (> 2 1)
in clojure. Ecco tutti gli operatori di confronto in clojure.
- Più grande di
(> 2 1) ;; true
(> 1 2) ;; false
- Meno di
(< 2 1) ;; false
- Maggiore o uguale a
(>= 2 1) ;; true
(>= 2 2) ;; true
(>= 1 2) ;; false
- Minore o uguale a
(<= 2 1) ;; false
(<= 2 2) ;; true
(<= 1 2) ;; true
- Uguale a
(= 2 2) ;; true
(= 2 10) ;; false
- Non uguale a
(not= 2 2) ;; false
(not= 2 10) ;; true
Dissoc - dissociare una chiave da una mappa del clojure
Ciò restituisce una mappa senza le coppie chiave-valore per le chiavi menzionate nell'argomento della funzione. Può essere usato per rimuovere informazioni dalla mappa esistente.
(dissoc {:a 1 :b 2} :a) ;; {:b 2}
Può anche essere usato per dissociare più chiavi come:
(dissoc {:a 1 :b 2 :c 3} :a :b) ;; {:c 3}