Clojure函数在从映射内调用时引发arity异常
在上面的代码中:SITES-NAMES给了我一个arity异常。然而 如果我叫它SITES-NAMES用户,它就工作了。为什么会这样Clojure函数在从映射内调用时引发arity异常,clojure,Clojure,在上面的代码中:SITES-NAMES给了我一个arity异常。然而 如果我叫它SITES-NAMES用户,它就工作了。为什么会这样 如果用户名的计算结果作为用户的示例。我不知道为什么会发生这种情况,但这里有一些提示: 1将匿名函数设置为顶级函数,如下所示: (map (fn [x] (let [username (or (:f_username x) nil) sites_names (SITES-NAMES username) x (assoc
如果用户名的计算结果作为用户的示例。我不知道为什么会发生这种情况,但这里有一些提示: 1将匿名函数设置为顶级函数,如下所示:
(map (fn [x]
(let [username (or (:f_username x) nil)
sites_names (SITES-NAMES username)
x (assoc x :sites sites_names)]
x)) my-rows)
请注意我如何命名变量,有关命名和其他整洁内容的更多信息,请参阅
2现在,您可以将呼叫更改为map with
这使您可以在REPL上使用添加站点功能,如下所示:
(map (partial add-site site-names) my-rows)
您可能还需要阅读以下内容:
从这里可以看到,没有理由认为该函数在let或其自身中的行为会有所不同。因此,请提供一个完整的示例,说明如何重现您看到的错误。my_行包含哪些内容?站点名称的来源是什么?
(map (partial add-site site-names) my-rows)
user> (add-site {"hector" "www.hector.com"} {:f-username "hector"})
;; => {:f-username "hector", :sites "www.hector.com"}