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