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 使用多方法和元数据时参数的数目错误_Clojure - Fatal编程技术网

Clojure 使用多方法和元数据时参数的数目错误

Clojure 使用多方法和元数据时参数的数目错误,clojure,Clojure,我有以下使用多方法和元数据的代码: (defrecord Card [id name value]) (defmulti make-card (fn [m] (:source (meta m)))) (defmethod make-card :random [m] (map->Card m)) (def card-info (with-meta {:id 1} {:source :random})) 当我打电话时: (make-card card-info) 它只是抛出“Arit

我有以下使用多方法和元数据的代码:

(defrecord Card [id name value])

(defmulti make-card (fn [m] (:source (meta m))))

(defmethod make-card :random [m] (map->Card m))
(def card-info  (with-meta {:id 1} {:source :random}))
当我打电话时:

(make-card card-info)
它只是抛出“ArityException错误数量的参数(1),传递给:core/eval1299/fn--1300 clojure.lang.AFn.throwArity(AFn.java:429)”

另一方面,如果我打电话:

 ((fn [m] (:source (meta m))) (with-meta {:id 1} {:source :random}))
它起作用了


有人请告诉我哪里弄错了?

好的,因为我需要结束这个问题,所以我需要回答我自己的问题(其他人没有回答)。事实上,我认为这是苹果酒或Windows上的问题。我不知道它在Linux或MacOS上是否不同。我使用的是Windows,连接到Emacs和VisualStudio代码的nRepl不知怎么搞砸了。如果我尝试运行一个单独的repl,它可以正常工作。

好的,因为我需要关闭这个问题,因此我需要回答我自己的问题(没有其他人这样做)。事实上,我认为这是苹果酒或Windows上的问题。我不知道它在Linux或MacOS上是否不同。我使用的是Windows,连接到Emacs和VisualStudio代码的nRepl不知怎么搞砸了。如果我尝试运行一个单独的repl,它工作正常。

它工作正常,我复制了您的代码,没有出现任何错误。请参阅:我在一个单独的repl中再次尝试,它现在似乎工作正常。但是我的Emacs和visualstudio代码(它们连接到自己的nRepl)只是显示错误。似乎是一个工具集成问题。非常感谢。它对我也有效。它有效,我复制了你的代码,没有出现任何错误。请看:我在一个单独的Repl中再次尝试,它现在似乎有效。但是我的Emacs和visualstudio代码(它们连接到自己的nRepl)只是显示错误。似乎是一个工具集成问题。非常感谢。它也适用于我。有同样的问题,出现了accross,它说“如果你更改多方法算术,你必须将多方法定义为nil或重新启动[repl]。它不会在重新编译时更新它。”有同样的问题,出现了accross,它说“如果更改多方法算术,则必须将多方法定义为nil或重新启动[repl]。它不会在重新编译时更新。”