나는 Clojure에 매우 익숙하며 좋은 오픈 소스 코드를 읽음으로써 Clojure를 배웠다. 그래서 나는 반지를 선택하고 코드를 읽기 시작하지만 assoc-query-params 함수에 갇혀있다. (ring.middleware/params.clj에 위치)Clojure에서 단순 병합 대신 merge-with가 사용되는 이유는 무엇입니까?
그리고 "병합"이 사용되는 이유를 이해할 수 없습니다. 누구든지이 코드 스 니펫을 이해하는 데 도움이 될 수 있습니까?
merge
기능의
(defn- assoc-query-params
"Parse and assoc parameters from the query string with the request."
[request encoding]
; I think (merge request (some-form)) is enough
; but the author used merge-with with merge function.
(merge-with merge request
(if-let [query-string (:query-string request)]
(let [params (parse-params query-string encoding)]
{:query-params params, :params params})
{:query-params {}, :params {}})))