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.

  1. Groter dan

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

  1. Minder dan

(< 2 1) ;; false

  1. Groter dan of gelijk aan

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

  1. Minder dan of gelijk aan

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

  1. Gelijk aan

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

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


Modified text is an extract of the original Stack Overflow Documentation
Licentie onder CC BY-SA 3.0
Niet aangesloten bij Stack Overflow