clojure
Makros einfädeln
Suche…
Einführung
Threading-Makros, auch Pfeilmakros genannt, konvertieren verschachtelte Funktionsaufrufe in einen linearen Ablauf von Funktionsaufrufen.
Thread Letzter (- >>)
Dieses Makro gibt die Ausgabe einer bestimmten Zeile als letztes Argument des Funktionsaufrufs der nächsten Zeile an. Für zB
(prn (str (+ 2 3)))
ist das gleiche wie
(->> 2
(+ 3)
(str)
(prn))
Thread zuerst (->)
Dieses Makro gibt die Ausgabe einer bestimmten Zeile als erstes Argument des Funktionsaufrufs der nächsten Zeile an. Für zB
(rename-keys (assoc {:a 1} :b 1) {:b :new-b}))
Kann nichts verstehen, richtig? Lass es uns nochmal versuchen, mit ->
(-> {:a 1}
(assoc :b 1) ;;(assoc map key val)
(rename-keys {:b :new-b})) ;;(rename-keys map key-newkey-map)
Thread als (as->)
Dies ist eine flexiblere Alternative zum ersten oder letzten Thread. Es kann an beliebiger Stelle in die Liste der Parameter der Funktion eingefügt werden.
(as-> [1 2] x
(map #(+ 1 %) x)
(if (> (count x) 2) "Large" "Small"))
Modified text is an extract of the original Stack Overflow Documentation
Lizenziert unter CC BY-SA 3.0
Nicht angeschlossen an Stack Overflow