수색…


소개

화살표 매크로라고도하는 스레딩 매크로는 중첩 된 함수 호출을 함수 호출의 선형 흐름으로 변환합니다.

마지막 스레드 (- >>)

이 매크로는 주어진 라인의 출력을 다음 라인 함수 호출의 마지막 인자로 준다. 예를 들면

(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->)

이것은 thread first 또는 thread last보다 유연한 대안입니다. 함수 매개 변수 목록의 아무 곳이나 삽입 할 수 있습니다.

(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