clojure
Макросы Threading
Поиск…
Вступление
Также известные как макросы стрелок, макросы потоковой передачи преобразуют вложенные вызовы функций в линейный поток вызовов функций.
Тема Последняя (- >>)
Этот макрос выводит выход данной строки в качестве последнего аргумента следующего вызова функции линии. Например, для
(prn (str (+ 2 3)))
такое же, как
(->> 2
(+ 3)
(str)
(prn))
Тема первая (->)
Этот макрос выводит вывод данной строки в качестве первого аргумента следующего вызова функции линии. Например, для
(rename-keys (assoc {:a 1} :b 1) {:b :new-b}))
Не могу ничего понять, верно? Повторите попытку, с помощью ->
(-> {:a 1}
(assoc :b 1) ;;(assoc map key val)
(rename-keys {:b :new-b})) ;;(rename-keys map key-newkey-map)
Тема как (as->)
Это более гибкая альтернатива нитному первому или последнему. Его можно вставить в любом месте в списке параметров функции.
(as-> [1 2] x
(map #(+ 1 %) x)
(if (> (count x) 2) "Large" "Small"))
Modified text is an extract of the original Stack Overflow Documentation
Лицензировано согласно CC BY-SA 3.0
Не связан с Stack Overflow