Suche…


Einführung

Dieses Dokument enthält verschiedene grundlegende Funktionen von clojure. Hierfür ist keine explizite Abhängigkeit erforderlich und Bestandteil von org.clojure.

Definieren von Funktionen 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 - Aktualisierung der Karten- / Vektorwerte in Clojure

Bei Anwendung auf einer Karte wird eine neue Karte mit neuen oder aktualisierten Schlüsselwertpaaren zurückgegeben.

Es kann verwendet werden, um neue Informationen in eine vorhandene Karte einzufügen.

(def userData {:name "Bob" :userID 2 :country "US"})
(assoc userData :age 27)            ;; { :name "Bob" :userID 2 :country "US" :age 27} 

Er ersetzt den alten Informationswert, wenn ein vorhandener Schlüssel bereitgestellt wird.

(assoc userData :name "Fred")       ;; { :name "Fred" :userID 2 :country "US" } 
(assoc userData :userID 3 :age 27)  ;; {:name "Bob" :userID 3 :country "US" :age 27} 

Sie kann auch für einen Vektor verwendet werden, um den Wert am angegebenen Index zu ersetzen.

(assoc [3 5 6 7] 2 10)              ;; [3 5 10 7]
(assoc [1 2 3 4] 6 6)               ;; java.lang.IndexOutOfBoundsException 

Vergleichsoperatoren in Clojure

Vergleiche sind Funktionen in Clojure. Was das in (2>1) ist (> 2 1) in Clojure. Hier sind alle Vergleichsoperatoren in clojure.

  1. Größer als

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

  1. Weniger als

(< 2 1) ;; false

  1. Größer als oder gleich wie

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

  1. Weniger als oder gleich

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

  1. Gleich

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

  1. Nicht gleichzusetzen mit

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

Dissoziation - Trennung eines Schlüssels von einer Clojure-Map

Dies gibt eine Map ohne die Schlüssel-Wert-Paare für die im Funktionsargument genannten Schlüssel zurück. Es kann verwendet werden, um Informationen aus der vorhandenen Karte zu entfernen.

(dissoc {:a 1 :b 2} :a) ;; {:b 2}

Es kann auch zum Auflösen mehrerer Schlüssel verwendet werden:

(dissoc {:a 1 :b 2 :c 3} :a :b) ;; {:c 3}


Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow