clojure
clojure.core
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.
- Größer als
(> 2 1) ;; true
(> 1 2) ;; false
- Weniger als
(< 2 1) ;; false
- Größer als oder gleich wie
(>= 2 1) ;; true
(>= 2 2) ;; true
(>= 1 2) ;; false
- Weniger als oder gleich
(<= 2 1) ;; false
(<= 2 2) ;; true
(<= 1 2) ;; true
- Gleich
(= 2 2) ;; true
(= 2 10) ;; false
- 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}