【发布时间】:2013-08-21 01:55:32
【问题描述】:
我对 Clojure 很陌生,通过阅读来学习 Clojure 很好的开源代码。所以我选择 Ring 并开始阅读 代码但卡在 assoc-query-params 函数中。 (位于ring.middleware/params.clj)
我不明白为什么要使用“合并”。 谁能帮我理解这段代码 sn-p?
(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 {}})))
【问题讨论】: