clojure
Makra wątków
Szukaj…
Wprowadzenie
Makra wątkowe, nazywane również makrami strzałek, przekształcają zagnieżdżone wywołania funkcji w liniowy przepływ wywołań funkcji.
Ostatni wątek (- >>)
To makro podaje wynik danego wiersza jako ostatni argument wywołania funkcji następnego wiersza. Na przykład
(prn (str (+ 2 3)))
jest taki sam jak
(->> 2
(+ 3)
(str)
(prn))
Pierwszy wątek (->)
To makro podaje wynik danego wiersza jako pierwszy argument wywołania funkcji następnego wiersza. Na przykład
(rename-keys (assoc {:a 1} :b 1) {:b :new-b}))
Nic nie rozumiesz, prawda? Spróbujmy ponownie za pomocą ->
(-> {:a 1}
(assoc :b 1) ;;(assoc map key val)
(rename-keys {:b :new-b})) ;;(rename-keys map key-newkey-map)
Wątek jako (as->)
Jest to bardziej elastyczna alternatywa dla pierwszego wątku lub ostatniego wątku. Można go wstawić w dowolnym miejscu na liście parametrów funkcji.
(as-> [1 2] x
(map #(+ 1 %) x)
(if (> (count x) 2) "Large" "Small"))
Modified text is an extract of the original Stack Overflow Documentation
Licencjonowany na podstawie CC BY-SA 3.0
Nie związany z Stack Overflow