Я новичок в Clojure и изучаю Clojure, читая хороший открытый исходный код. Поэтому я выбираю Ring и начинаю читать код, но застрял в функции assoc-query-params. (который находится в кольце. промежуточное ПО / params.clj)
И я не мог понять, почему используется «слияние». Может ли кто-нибудь помочь мне понять этот фрагмент кода?
(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 {}})))