Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/clojure/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Clojure函数在从映射内调用时引发arity异常_Clojure - Fatal编程技术网

Clojure函数在从映射内调用时引发arity异常

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

在上面的代码中:SITES-NAMES给了我一个arity异常。然而 如果我叫它SITES-NAMES用户,它就工作了。为什么会这样
如果用户名的计算结果作为用户的示例。

我不知道为什么会发生这种情况,但这里有一些提示:

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"}