clojure
clojure.core
Sök…
Introduktion
Detta dokument ger olika grundläggande funktioner som erbjuds av clojure. Det behövs inget uttryckligt beroende för detta och kommer som en del av org.clojure.
Definiera funktioner i 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 - uppdatering av kart- / vektorvärden i clojure
När den används på en karta returnerar du en ny karta med nya eller uppdaterade nyckelvalpar.
Det kan användas för att lägga till ny information på befintlig karta.
(def userData {:name "Bob" :userID 2 :country "US"})
(assoc userData :age 27) ;; { :name "Bob" :userID 2 :country "US" :age 27}
Det ersätter gammalt informationsvärde om existerande nyckel levereras.
(assoc userData :name "Fred") ;; { :name "Fred" :userID 2 :country "US" }
(assoc userData :userID 3 :age 27) ;; {:name "Bob" :userID 3 :country "US" :age 27}
Det kan också användas på en vektor för att ersätta värde vid det angivna indexet.
(assoc [3 5 6 7] 2 10) ;; [3 5 10 7]
(assoc [1 2 3 4] 6 6) ;; java.lang.IndexOutOfBoundsException
Jämförelseoperatörer i Clojure
Jämförelser är funktioner i clojure. Vad det betyder i (2>1)
är (> 2 1)
i clojure. Här är alla jämförelseoperatörer i clojure.
- Större än
(> 2 1) ;; true
(> 1 2) ;; false
- Mindre än
(< 2 1) ;; false
- Större än eller lika med
(>= 2 1) ;; true
(>= 2 2) ;; true
(>= 1 2) ;; false
- Mindre än eller lika med
(<= 2 1) ;; false
(<= 2 2) ;; true
(<= 1 2) ;; true
- Lika med
(= 2 2) ;; true
(= 2 10) ;; false
- Inte lika med
(not= 2 2) ;; false
(not= 2 10) ;; true
Dissoc - ta bort en nyckel från en clojurekarta
Detta returnerar en karta utan nyckelvärdespar för tangenterna som nämns i funktionsargumentet. Det kan användas för att ta bort information från befintlig karta.
(dissoc {:a 1 :b 2} :a) ;; {:b 2}
Det kan också användas för att dissocera flera nycklar som:
(dissoc {:a 1 :b 2 :c 3} :a :b) ;; {:c 3}