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.

  1. Större än

(> 2 1) ;; true
(> 1 2) ;; false

  1. Mindre än

(< 2 1) ;; false

  1. Större än eller lika med

(>= 2 1) ;; true
(>= 2 2) ;; true
(>= 1 2) ;; false

  1. Mindre än eller lika med

(<= 2 1) ;; false
(<= 2 2) ;; true
(<= 1 2) ;; true

  1. Lika med

(= 2 2) ;; true
(= 2 10) ;; false

  1. 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}


Modified text is an extract of the original Stack Overflow Documentation
Licensierat under CC BY-SA 3.0
Inte anslutet till Stack Overflow