clojure
clojure.core
Zoeken…
Invoering
Dit document geeft verschillende basisfunctionaliteiten aangeboden door clojure. Er is geen expliciete afhankelijkheid hiervoor nodig en wordt geleverd als onderdeel van org.clojure.
Functies definiëren 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 - kaart- / vectorwaarden bijwerken in clojure
Wanneer toegepast op een kaart, retourneert een nieuwe kaart met nieuwe of bijgewerkte sleutelvalparen.
Het kan worden gebruikt om nieuwe informatie toe te voegen aan een bestaande kaart.
(def userData {:name "Bob" :userID 2 :country "US"})
(assoc userData :age 27) ;; { :name "Bob" :userID 2 :country "US" :age 27}
Het vervangt de oude informatiewaarde als een bestaande sleutel wordt verstrekt.
(assoc userData :name "Fred") ;; { :name "Fred" :userID 2 :country "US" }
(assoc userData :userID 3 :age 27) ;; {:name "Bob" :userID 3 :country "US" :age 27}
Het kan ook worden gebruikt op een vector voor het vervangen van waarde bij de opgegeven index.
(assoc [3 5 6 7] 2 10) ;; [3 5 10 7]
(assoc [1 2 3 4] 6 6) ;; java.lang.IndexOutOfBoundsException
Vergelijkingsoperatoren in Clojure
Vergelijkingen zijn functies in clojure. Wat dat betekent in (2>1)
is (> 2 1)
in clojure. Hier zijn alle vergelijkingsoperatoren in clojure.
- Groter dan
(> 2 1) ;; true
(> 1 2) ;; false
- Minder dan
(< 2 1) ;; false
- Groter dan of gelijk aan
(>= 2 1) ;; true
(>= 2 2) ;; true
(>= 1 2) ;; false
- Minder dan of gelijk aan
(<= 2 1) ;; false
(<= 2 2) ;; true
(<= 1 2) ;; true
- Gelijk aan
(= 2 2) ;; true
(= 2 10) ;; false
- Niet gelijk aan
(not= 2 2) ;; false
(not= 2 10) ;; true
Dissoc - een sleutel van een clojure-kaart scheiden
Dit retourneert een kaart zonder de sleutel / waarde-paren voor de sleutels die in het functieargument worden genoemd. Het kan worden gebruikt om informatie van bestaande kaarten te verwijderen.
(dissoc {:a 1 :b 2} :a) ;; {:b 2}
Het kan ook worden gebruikt voor het dissociëren van meerdere sleutels zoals:
(dissoc {:a 1 :b 2 :c 3} :a :b) ;; {:c 3}