Intellij idea 传递的参数数(0)错误。。。错误?

Intellij idea 传递的参数数(0)错误。。。错误?,intellij-idea,clojure,leiningen,cursive,Intellij Idea,Clojure,Leiningen,Cursive,我相信这是有效的Clojure代码—在Lein控制台REPL中运行良好—但草书REPL中出现错误: Connecting to local nREPL server... Clojure 1.8.0 nREPL server started on port 41303 on host 127.0.0.1 - nrepl://127.0.0.1:41303 *ns* => #object[clojure.lang.Namespace 0x4394b860 "user"] (defn conc

我相信这是有效的Clojure代码—在Lein控制台REPL中运行良好—但草书REPL中出现错误:

Connecting to local nREPL server...
Clojure 1.8.0
nREPL server started on port 41303 on host 127.0.0.1 - nrepl://127.0.0.1:41303
*ns*
=> #object[clojure.lang.Namespace 0x4394b860 "user"]
(defn concat-some
  [f vec1 vec2]
  ((fn [x] (filter f x)
    (concat vec1 vec2))))
=> #'user/concat-some
(concat-some even? [1 2 3] [4 5 6])
clojure.lang.ArityException: Wrong number of args (0) passed to: user/concat-some/fn--4953
我是不是遗漏了什么

谢谢你的帮助

编辑和跟进:

这绝对是一个巴黎人的问题。此代码:

(defn concat-some
  [f vec1 vec2]
  ((fn [x] (filter f x))
    (concat vec1 vec2)))
(concat-some even? [1 2 3] [4 5 6])
当在启用Parinfer的情况下粘贴到草书REPL中时,会产生错误的粘贴,并产生上面的ArityException。在打开Paredit或关闭结构编辑的情况下,将相同的代码粘贴到相同的REPL中,将生成预期的输出:

;; => #'user/concat-some
;; => (2 4 6)
我不知道在编辑器和REPL中使用了在草书中激活的结构编辑。我仍然希望有效代码是有效代码,不管模式如何,我想知道这是否是粘贴到草书/Parinfer REPL中的预期结果。(?)


再次感谢您在这方面的帮助。

您的编辑器可能有一个slurp/barf命令,是您用键盘快捷键意外触发的,但此复制/粘贴出现错误

您有
),这通常是一个不好的迹象,除非像示例中那样正确执行:

(defn concat-some
  [f vec1 vec2]
  ((fn [x] (filter f x))
   (concat vec1 vec2)))
(concat-some even? [1 2 3] [4 5 6])

在您的中,带有
filter
的行上的最后一个参数丢失,并放在函数的末尾。这意味着您正在调用一个带有0个参数的函数,但是您对
fn
的调用生成了一个带有1个参数的函数
x

您的编辑器可能有一个slurp/barf命令,是您意外触发的使用键盘快捷键,但此复制/粘贴出错

您有
),这通常是一个不好的迹象,除非像示例中那样正确执行:

(defn concat-some
  [f vec1 vec2]
  ((fn [x] (filter f x))
   (concat vec1 vec2)))
(concat-some even? [1 2 3] [4 5 6])

在您的中,带有
filter
的行上的最后一个参数丢失,并放在函数的末尾。这意味着您正在调用一个带有0个参数的函数,但是您对
fn
的调用生成一个带有1个参数的函数
x

这在您的Lein repl中也不起作用。您的复制粘贴不正确,并且因此,您的参数放错了位置。请参见上面的编辑。这在您的Lein repl中也不起作用。您的复制粘贴不正确,因此您的参数放错了位置。请参见上面的编辑。是的,这是一个错误的粘贴。我现在看到上面评估的代码不正确,但它是ClojureBridge的正确代码的粘贴。我在想g差异可能是由于我在草书中使用的Parinfer。哦,绝对!Parinfer是最差的!是的,它是一个错误的粘贴。我现在看到上面的评估代码是不正确的,但它是ClojureBridge的正确代码的粘贴。我想差异可能是由于我在草书中使用的Parinfer。哦,绝对!Parinfer是最差的!