【发布时间】:2011-12-11 19:32:03
【问题描述】:
编辑:
这个问题的答案是我在看函数,而不是循环参数。
在以下两个函数中的第二个中,我无法弄清楚为什么 recur 认为它只应该传递一个参数。
CompilerException java.lang.IllegalArgumentException:重复参数计数不匹配,预期:1 args,得到:2,编译:(/home/cnorton/projects/clojure/clj_in_action/mr1/src/mr1.clj:84)
我没有看到不正确的地方。
(defn determine-rover-move
[rover-coord mov]
(println rover-coord mov)
(cond
(= \L mov) (assoc rover-coord 0 (adj-compass-posL (first rover-coord)))
(= \R mov) (assoc rover-coord 0 (adj-compass-posR (first rover-coord)))
(= \M mov) (mov-rover rover-coord)
))
(defn execute-each-move
[moves rover-coord]
(loop [mov moves]
(if (nil? mov)
rover-coord
(recur (rest moves) (determine-rover-move rover-coord mov)))))
【问题讨论】:
-
好的,我现在看到了问题。循环只有一个参数。我在看函数参数。
-
也许提供您自己问题的答案而不是评论。
-
其实,我本来打算去的,回答你自己问题的注释说最好使用评论。
标签: clojure