错误的参数号重复功能

Epi*_*lle 0 recursion clojure

我是功能编程的初学者,我试着打印一个迷宫.
这是我的功能

(defn pprint-maze
  [arr row col]
  (loop [coll arr idx 0]
    (match [idx]
      [(_ :guard #(= (mod idx col) 0))] (println "") ; write a \n
      :else (print "-"))                       ; write a wall
    (when (next coll)
      (recur (next coll) (inc idx)))))
Run Code Online (Sandbox Code Playgroud)

我的函数采用了迷宫的集合和大小,现在,只需在行的末尾打印破折号和\n.我遇到的问题是: Exception in thread "main" clojure.lang.ArityException: Wrong number of args (1) passed to: core/pprint-maze/fn--4873/fn--4874

我认为指出的函数是我的循环函数,问题与匹配有关(因为当我评论匹配块时,一切正常).我认为匹配尝试用nil作为参数调用循环函数(println函数的返回).

怎么解决?

ama*_*loy 7

传递给的函数:guard应该只接受一个参数,值被保护.您的函数采用零参数.

  • ...因为`#(...)`形式不包含'%`或'%1`标记. (2认同)