Поиск…


Вступление

Также известные как макросы стрелок, макросы потоковой передачи преобразуют вложенные вызовы функций в линейный поток вызовов функций.

Тема Последняя (- >>)

Этот макрос выводит выход данной строки в качестве последнего аргумента следующего вызова функции линии. Например, для

(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